diff --git a/doc/crypto.pod b/doc/crypto.pod new file mode 100644 index 0000000000000000000000000000000000000000..4873b1765db91cf56d9077a83f959d8bbad44908 --- /dev/null +++ b/doc/crypto.pod @@ -0,0 +1,27 @@ + +=pod + +=head1 NAME + +Crypto - OpenSSL Cryptography library + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +The OpenSSL B library implements various cryptography standards +related to the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security +(TLS v1) protocols. It provides a rich API which is documented here. + +... + +=head1 SEE ALSO + +openssl(1), ssl(3) + +=head1 AUTHORS + +Ralf S. Engelschall + +=cut + diff --git a/doc/openssl.pod b/doc/openssl.pod new file mode 100644 index 0000000000000000000000000000000000000000..f7b841533457929d6c7d2133e146018c8da0050f --- /dev/null +++ b/doc/openssl.pod @@ -0,0 +1,132 @@ + +=pod + +=head1 NAME + +openssl - OpenSSL command line tool + +=head1 SYNOPSIS + +B +I +[ I ] +[ I ] + +=head1 DESCRIPTION + +OpenSSL is a cryptography toolkit implementing the Secure Sockets Layer (SSL +v2/v3) and Transport Layer Security (TLS v1) network protocols and related +cryptography standards required by them. + +The B program is a command line tool for using the various +cryptography functions of OpenSSL's B library from the shell. +It can be used for + + o Creation of RSA, DH and DSA key parameters + o Creattion of X.509 certificates, CSRs and CRLs + o Calculation of Message Digests + o Encryption and Decryption with Ciphers + o SSL/TLS Client and Server Tests + +=head1 COMMAND SUMMARY + +The B program provides a rich variety of commands (I in the +SYNOPSIS above), each of which often has a wealth of options and arguments +(I and I in the SYNOPSIS). + +=over 10 + +=item B + +This implements a generic SSL/TLS client which can establish a transparent +connection to a remote server speaking SSL/TLS. It's intended for testing +purposes only and provides only rudimentary interface functionality but +internally uses mostly all functionality of the OpenSSL B library. + +=item B + +This implements a generic SSL/TLS server which accepts connections from remote +clients speaking SSL/TLS. It's intended for testing purposes only and provides +only rudimentary interface functionality but internally uses mostly all +functionality of the OpenSSL B library. It provides both an own command +line oriented protocol for testing SSL functions and a simple HTTP response +facility to emulate an SSL/TLS-aware webserver. + +=back + +=head1 DETAILED COMMAND DESCRIPTION + +The following is a detailed description of every B I. + +=over 4 + +=item B B +[B<-connect> IB<:>I] +[B<-verify> I] +[B<-cert> I] +[B<-key> I] +[B<-CApath> I] +[B<-CAfile> I] +[B<-reconnect>] +[B<-pause>] +[B<-debug>] +[B<-nbio_test>] +[B<-state>] +[B<-nbio>] +[B<-quiet>] +[B<-ssl2>] +[B<-ssl3>] +[B<-tls1>] +[B<-no_ssl2>] +[B<-no_ssl3>] +[B<-no_tls1>] +[B<-bugs>] +[B<-cipher>] + +The B command implements a generic SSL/TLS client which can +establish a transparent connection to a remote I and I speaking +SSL/TLS. + +=item B B +[B<-accept> I] +[B<-verify> I] +[B<-Verify> I] +[B<-cert> I] +[B<-key> I] +[B<-nbio>] +[B<-nbio_test>] +[B<-debug>] +[B<-state>] +[B<-CApath> I] +[B<-CAfile> I] +[B<-nocert>] +[B<-cipher> I] +[B<-quiet>] +[B<-no_tmp_rsa>] +[B<-ssl2>] +[B<-ssl3>] +[B<-tls1>] +[B<-no_ssl2>] +[B<-no_ssl3>] +[B<-no_tls1>] +[B<-bugs>] +[B<-www>] +[B<-WWW>] + +The B command implements a generic SSL/TLS server which accepts +connections from remote clients on I speaking SSL/TLS. + +=back + +... + +=head1 SEE ALSO + +crypto(3), ssl(3) + +=head1 AUTHORS + +Ralf S. Engelschall + +=cut + diff --git a/doc/ssl.pod b/doc/ssl.pod new file mode 100644 index 0000000000000000000000000000000000000000..311dd242b1d317a0b332396b7f0f70b904616591 --- /dev/null +++ b/doc/ssl.pod @@ -0,0 +1,543 @@ + +=pod + +=head1 NAME + +SSL - OpenSSL SSL/TLS library + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +The OpenSSL B library implements the Secure Sockets Layer (SSL v2/v3) and +Transport Layer Security (TLS v1) protocols. It provides a rich API which is +documented here. + +=head1 HEADERS + +Currently the OpenSSL B library provides the following C header files +containing the prototypes for the data structures and and functions: + +=over 4 + +=item B + +That's the common header file for the SSL/TLS API. Include it into your +program to make the API of the B library available. It internally +includes both more private SSL headers and headers from the B library. + +=back + +=head1 STRUCTURES + +Currently the OpenSSL B library functions deal with the following data +structures: + +=over 4 + +=item B (SSL Context) + +=item B (SSL Connection) + +That's the SSL/TLS structure which is created by +a server or client per established connection. + +=item B (SSL Method) + +=item B (SSL Cipher) + +=item B (SSL Session) + +=back + +=head1 FUNCTIONS + +Currently the OpenSSL B library exports 143 API functions. +They are documented in the following: + +=over 4 + +=item [MACRO] B(SSL_kEDH|SSL_aNULL); + +=item [MACRO] B(SSL_ST_ACCEPT|SSL_CB_EXIT); + +=item [MACRO] B(SSL_ST_ACCEPT|SSL_CB_LOOP); + +=item [MACRO] B(SSL_ST_CONNECT|SSL_CB_EXIT); + +=item [MACRO] B(SSL_ST_CONNECT|SSL_CB_LOOP); + +=item [MACRO] B(SSL_CB_ALERT|SSL_CB_READ); + +=item [MACRO] B(SSL_CB_ALERT|SSL_CB_WRITE); + +=item char *B(SSL_CIPHER *cipher, char *buf, int len); + +=item int B(SSL_CIPHER *c, int *alg_bits); + +=item char *B(SSL_CIPHER *c); + +=item char *B(SSL_CIPHER *c); + +=item int B(SSL_CTX *ctx, X509 *x); + +=item [MACRO] B(ctx,x509); + +=item int B(SSL_CTX *ctx, SSL_SESSION *c); + +=item int B(SSL_CTX *ctx); + +=item long B(SSL_CTX *ctx, int cmd, long larg, char *parg); + +=item void B(SSL_CTX *s, long t); + +=item void B(SSL_CTX *a); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item STACK *B(SSL_CTX *ctx); + +=item [MACRO] B(ctx); + +=item char *B(SSL_CTX *s, int idx); + +=item int B(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void)) + +=item [MACRO] B(ctx); + +=item int B(SSL_CTX *ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item int (*B(SSL_CTX *ctx);)(void) + +=item int B(SSL_CTX *ctx); + +=item int B(SSL_CTX *ctx, char *CAfile, char *CApath); + +=item [MACRO] B(ctx); + +=item SSL_CTX *B(SSL_METHOD *meth); + +=item int B(SSL_CTX *ctx, SSL_SESSION *c); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx,t); + +=item [MACRO] B(ctx,cb); + +=item [MACRO] B(ctx,cb); + +=item [MACRO] B(ctx,cb); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx); + +=item [MACRO] B(ctx,arg); + +=item [MACRO] B(ctx,cs); + +=item [MACRO] B(a,b,c); + +=item void B(SSL_CTX *ctx, int (*cb);(void), char *arg) + +=item int B(SSL_CTX *ctx, char *str); + +=item void B(SSL_CTX *ctx, STACK *list); + +=item [MACRO] B(ctx,cb); + +=item void B(SSL_CTX *ctx, int (*cb);(void)) + +=item [MACRO] B(ctx,m); + +=item [MACRO] B(a,b,c); + +=item int B(SSL_CTX *ctx); + +=item int B(SSL_CTX *s, int idx, char *arg); + +=item [MACRO] B(ctx,cb); + +=item [MACRO] B(ctx,op); + +=item void B(SSL_CTX *ctx, int mode); + +=item [MACRO] B(ctx,m); + +=item int B(SSL_CTX *ctx, SSL_METHOD *meth); + +=item [MACRO] B(ctx,t); + +=item [MACRO] B(ctx,dh); + +=item [MACRO] B(ctx,dh); + +=item [MACRO] B(ctx,rsa); + +=item [MACRO] B(ctx,cb); + +=item void B(SSL_CTX *ctx, int mode, int (*cb);(void)) + +=item int B(SSL_CTX *ctx, EVP_PKEY *pkey); + +=item int B(int type, SSL_CTX *ctx, unsigned char *d, long len); + +=item int B(SSL_CTX *ctx, char *file, int type); + +=item int B(SSL_CTX *ctx, RSA *rsa); + +=item int B(SSL_CTX *ctx, unsigned char *d, long len); + +=item int B(SSL_CTX *ctx, char *file, int type); + +=item int B(SSL_CTX *ctx, X509 *x); + +=item int B(SSL_CTX *ctx, int len, unsigned char *d); + +=item int B(SSL_CTX *ctx, char *file, int type); + +=item [MACRO] B(SSL_kDHr|SSL_kDHd|SSL_kEDH); + +=item [MACRO] B(SSL_kEDH|(SSL_AUTH_MASK^SSL_aNULL); + +=item [MACRO] B(SSL_aFZA|SSL_kFZA|SSL_eFZA); + +=item [MACRO] B(512/8); + +=item [MACRO] B(SSL_eNULL); + +=item [MACRO] B(SSL_kRSA|SSL_aRSA); + +=item [MACRO] B(1024*20); + +=item int B(SSL_SESSION *a, SSL_SESSION *b); + +=item void B(SSL_SESSION *ss); + +=item [MACRO] B(s); + +=item char *B(SSL_SESSION *s, int idx); + +=item int B(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void)) + +=item long B(SSL_SESSION *s); + +=item long B(SSL_SESSION *s); + +=item unsigned long B(SSL_SESSION *a); + +=item SSL_SESSION *B(void); + +=item int B(BIO *bp, SSL_SESSION *x); + +=item int B(FILE *fp, SSL_SESSION *x); + +=item [MACRO] B(s,a); + +=item int B(SSL_SESSION *s, int idx, char *arg); + +=item long B(SSL_SESSION *s, long t); + +=item long B(SSL_SESSION *s, long t); + +=item [MACRO] B(SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER); + +=item [MACRO] B(SSL_SHA1); + +=item [MACRO] B(SSL_ST_CONNECT|SSL_ST_ACCEPT); + +=item [MACRO] B(0x04|SSL_ST_INIT); + +=item int B(SSL *s); + +=item int B(SSL *ssl, X509 *x); + +=item [MACRO] B(a,b); + +=item char *B(int value); + +=item char *B(int value); + +=item char *B(int value); + +=item char *B(int value); + +=item int B(SSL *ssl); + +=item void B(SSL *s); + +=item [MACRO] B(ssl); + +=item int B(SSL *s); + +=item void B(SSL *t, SSL *f); + +=item long B(SSL *s, int cmd, long larg, char *parg); + +=item int B(SSL *s); + +=item SSL *B(SSL *s); + +=item STACK *B(STACK *sk); + +=item [MACRO] B(a,b); + +=item void B(SSL *s); + +=item SSL_CTX *B(SSL *ssl); + +=item [MACRO] B(s); + +=item X509 *B(SSL *s); + +=item [MACRO] B(s); + +=item [MACRO] B(s,np); + +=item char *B(SSL *s, int n); + +=item [MACRO] B(s); + +=item [MACRO] B(s); + +=item STACK *B(SSL *s); + +=item STACK *B(SSL *s); + +=item SSL_CIPHER *B(SSL *s); + +=item long B(SSL *s); + +=item int B(SSL *s, int i); + +=item char *B(SSL *s, int idx); + +=item int B(void); + +=item int B(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void)) + +=item int B(SSL *s); + +=item void (*B(SSL *ssl);)(void) + +=item STACK *B(SSL *s); + +=item X509 *B(SSL *s); + +=item EVP_PKEY *B(SSL *s); + +=item int B(SSL *s); + +=item BIO *B(SSL *s); + +=item int B(SSL *s); + +=item SSL_SESSION *B(SSL *ssl); + +=item char *B(SSL *s, char *buf, int len); + +=item int B(SSL *s); + +=item SSL_METHOD *B(SSL *s); + +=item [MACRO] B(a); + +=item [MACRO] B(a); + +=item [MACRO] B(a); + +=item int (*B(SSL *s);)(void) + +=item int B(SSL *s); + +=item long B(SSL *ssl); + +=item char *B(SSL *s); + +=item BIO *B(SSL *s); + +=item [MACRO] B(a); + +=item [MACRO] B(a); + +=item [MACRO] B(a); + +=item [MACRO] B(a); + +=item [MACRO] B(a); + +=item STACK *B(char *file); + +=item void B(void); + +=item SSL *B(SSL_CTX *ctx); + +=item [MACRO] B(ssl); + +=item int B(SSL *s, char *buf, int num); + +=item int B(SSL *s); + +=item int B(SSL *s, char *buf, int num); + +=item [MACRO] B(a,b); + +=item int B(SSL *s); + +=item char *B(SSL *s); + +=item char *B(SSL *s); + +=item [MACRO] B(ssl); + +=item void B(SSL *s); + +=item [MACRO] B(s,arg); + +=item void B(SSL *s, BIO *rbio, BIO *wbio); + +=item int B(SSL *s, char *str); + +=item void B(SSL *s, STACK *list); + +=item void B(SSL *s); + +=item int B(SSL *s, int idx, char *arg); + +=item int B(SSL *s, int fd); + +=item void B(SSL *ssl, void (*cb);(void)) + +=item [MACRO] B(ssl,op); + +=item [MACRO] B(c,n); + +=item void B(SSL *s, int mode); + +=item void B(SSL *s, int yes); + +=item int B(SSL *s, int fd); + +=item int B(SSL *s, SSL_SESSION *session); + +=item void B(SSL *s, int mode); + +=item int B(SSL *s, SSL_METHOD *meth); + +=item [MACRO] B(a,b); + +=item [MACRO] B(a,b); + +=item void B(SSL *s, int mode, int (*callback);(void)) + +=item void B(SSL *ssl, long arg); + +=item int B(SSL *s, int fd); + +=item int B(SSL *s); + +=item int B(SSL *ssl); + +=item char *B(SSL *s); + +=item char *B(SSL *s); + +=item [MACRO] B(ssl); + +=item int B(SSL *ssl, EVP_PKEY *pkey); + +=item int B(int type, SSL *ssl, unsigned char *d, long len); + +=item int B(SSL *ssl, char *file, int type); + +=item int B(SSL *ssl, RSA *rsa); + +=item int B(SSL *ssl, unsigned char *d, long len); + +=item int B(SSL *ssl, char *file, int type); + +=item int B(SSL *ssl, X509 *x); + +=item int B(SSL *ssl, int len, unsigned char *d); + +=item int B(SSL *ssl, char *file, int type); + +=item int B(SSL *s); + +=item [MACRO] B(s); + +=item [MACRO] B(s); + +=item [MACRO] B(s); + +=item [MACRO] B(s); + +=item [MACRO] B(s); + +=item int B(SSL *s, char *buf, int num); + +=item SSL_METHOD *B(void); + +=item SSL_METHOD *B(void); + +=item SSL_METHOD *B(void); + +=item SSL_METHOD *B(void); + +=item SSL_METHOD *B(void); + +=item SSL_METHOD *B(void); + +=item SSL_METHOD *B(void); + +=item SSL_METHOD *B(void); + +=item SSL_METHOD *B(void); + +=back + +=head1 SEE ALSO + +openssl(1), crypto(3) + +=head1 AUTHORS + +Ralf S. Engelschall + +=cut +