s/qmail 4.3.20
Next generation secure email transport
Loading...
Searching...
No Matches
Macros | Functions | Variables
qmail-dksign.c File Reference
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include "sig.h"
#include "stralloc.h"
#include "buffer.h"
#include "error.h"
#include "auto_qmail.h"
#include "auto_queue.h"
#include "control.h"
#include "str.h"
#include "exit.h"
#include "case.h"
#include "constmap.h"
#include "uint_t.h"
#include "fd.h"
#include "logmsg.h"
#include "open.h"
#include "fmt.h"
#include "fmtqfn.h"
#include "readwrite.h"
#include "qmail.h"
#include "wait.h"
#include "pathexec.h"
#include "rcpthosts.h"
Include dependency graph for qmail-dksign.c:

Go to the source code of this file.

Macros

#define WHO   "qmail-dksign"
 
#define DOMAINKEYS   "/ssl/domainkeys/"
 

Functions

int main (int argc, char *const *args)
 

Variables

char inbuf [BUFSIZE_LINE]
 
buffer bi = BUFFER_INIT(buffer_unixread,0,inbuf,sizeof(inbuf))
 
char outbuf [BUFSIZE_MESS]
 
buffer bo = BUFFER_INIT(buffer_unixwrite,1,outbuf,sizeof(outbuf))
 
stralloc fndkin = {0}
 
stralloc fndkout = {0}
 
stralloc sender = {0}
 
stralloc senddomain = {0}
 
stralloc originator = {0}
 
stralloc dkimdomains = {0}
 
struct constmap mapdkimdomains
 
stralloc ecckey = {0}
 
stralloc rsakey = {0}
 
char * dkimparams = 0
 
stralloc selector = {0}
 
stralloc selectore = {0}
 
stralloc sdid = {0}
 
stralloc auid = {0}
 
stralloc expire = {0}
 
stralloc canon = {0}
 
stralloc hash = {0}
 
stralloc length = {0}
 

Detailed Description

-- generate signature and attach in DKIM header to outgoing message

Steps:

a) DKIM controls: get private key for sending domain b) Prepare two staging files at queue/dkim (before and after signing) c) Read input at fd0 and insert CR for every line and store at dkim/x/pre d) DKIM sign the message with provided private key and store at dkim/y/post e) Copy signed file from fd to 0 f) Invoke qmail-remote (respecting the \r
) g) Remove staging files (pre/post)

Hack for hybrid signatures:

a) selector is a link to RSA private key b) selector2 is a link to Ed25519 private key c) Both are provided in the 'selector' field of dkimdomains separated by colon d) The coupled selector information is provided to qmail-dkim as: -yselector ,-Yselector2 e) The RSA privat key is given unaltered f) The Ed25519 private is supplied as additional argument

Definition in file qmail-dksign.c.

Macro Definition Documentation

◆ DOMAINKEYS

#define DOMAINKEYS   "/ssl/domainkeys/"

Definition at line 32 of file qmail-dksign.c.

◆ WHO

#define WHO   "qmail-dksign"

Definition at line 30 of file qmail-dksign.c.

Function Documentation

◆ main()

int main ( int  argc,
char *const *  args 
)

Definition at line 425 of file qmail-dksign.c.

Here is the call graph for this function:

Variable Documentation

◆ auid

stralloc auid = {0}

Definition at line 231 of file qmail-dksign.c.

◆ bi

buffer bi = BUFFER_INIT(buffer_unixread,0,inbuf,sizeof(inbuf))

Definition at line 58 of file qmail-dksign.c.

◆ bo

buffer bo = BUFFER_INIT(buffer_unixwrite,1,outbuf,sizeof(outbuf))

Definition at line 60 of file qmail-dksign.c.

◆ canon

stralloc canon = {0}

Definition at line 233 of file qmail-dksign.c.

◆ dkimdomains

stralloc dkimdomains = {0}

Definition at line 75 of file qmail-dksign.c.

◆ dkimparams

char* dkimparams = 0

Definition at line 80 of file qmail-dksign.c.

◆ ecckey

stralloc ecckey = {0}

Definition at line 78 of file qmail-dksign.c.

◆ expire

stralloc expire = {0}

Definition at line 232 of file qmail-dksign.c.

◆ fndkin

stralloc fndkin = {0}

Definition at line 69 of file qmail-dksign.c.

◆ fndkout

stralloc fndkout = {0}

Definition at line 70 of file qmail-dksign.c.

◆ hash

stralloc hash = {0}

Definition at line 234 of file qmail-dksign.c.

◆ inbuf

char inbuf[BUFSIZE_LINE]

Definition at line 57 of file qmail-dksign.c.

◆ length

stralloc length = {0}

Definition at line 235 of file qmail-dksign.c.

◆ mapdkimdomains

struct constmap mapdkimdomains

Definition at line 76 of file qmail-dksign.c.

◆ originator

stralloc originator = {0}

Definition at line 74 of file qmail-dksign.c.

◆ outbuf

char outbuf[BUFSIZE_MESS]

Definition at line 59 of file qmail-dksign.c.

◆ rsakey

stralloc rsakey = {0}

Definition at line 79 of file qmail-dksign.c.

◆ sdid

stralloc sdid = {0}

Definition at line 230 of file qmail-dksign.c.

◆ selector

stralloc selector = {0}

Definition at line 228 of file qmail-dksign.c.

◆ selectore

stralloc selectore = {0}

Definition at line 229 of file qmail-dksign.c.

◆ senddomain

stralloc senddomain = {0}

Definition at line 73 of file qmail-dksign.c.

◆ sender

stralloc sender = {0}

Definition at line 72 of file qmail-dksign.c.