Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(181)

Side by Side Diff: openssl/doc/ssleay.txt

Issue 9254031: Upgrade chrome's OpenSSL to same version Android ships with. (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/openssl/
Patch Set: '' Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « openssl/doc/ssl/ssl.pod ('k') | openssl/doc/standards.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 Bundle of old SSLeay documentation files [OBSOLETE!] 2 Bundle of old SSLeay documentation files [OBSOLETE!]
3 3
4 *** WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! *** 4 *** WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ***
5 5
6 OBSOLETE means that nothing in this document should be trusted. This 6 OBSOLETE means that nothing in this document should be trusted. This
7 document is provided mostly for historical purposes (it wasn't even up 7 document is provided mostly for historical purposes (it wasn't even up
8 to date at the time SSLeay 0.8.1 was released) and as inspiration. If 8 to date at the time SSLeay 0.8.1 was released) and as inspiration. If
9 you copy some snippet of code from this document, please _check_ that 9 you copy some snippet of code from this document, please _check_ that
10 it really is correct from all points of view. For example, you can 10 it really is correct from all points of view. For example, you can
11 check with the other documents in this directory tree, or by comparing 11 check with the other documents in this directory tree, or by comparing
12 with relevant parts of the include files. 12 with relevant parts of the include files.
13 13
14 People have done the mistake of trusting what's written here. Please 14 People have done the mistake of trusting what's written here. Please
15 don't do that. 15 don't do that.
16 16
17 *** WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! *** 17 *** WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ***
18 18
19 19
20 ==== readme ======================================================== 20 ==== readme ========================================================
21 21
22 This is the old 0.6.6 docuementation. Most of the cipher stuff is still 22 This is the old 0.6.6 docuementation. Most of the cipher stuff is still
23 relevent but I'm working (very slowly) on new docuemtation. 23 relevent but I'm working (very slowly) on new documentation.
24 The current version can be found online at 24 The current version can be found online at
25 25
26 http://www.cryptsoft.com/ssleay/doc 26 http://www.cryptsoft.com/ssleay/doc
27 27
28 ==== API.doc ======================================================== 28 ==== API.doc ========================================================
29 29
30 SSL - SSLv2/v3/v23 etc. 30 SSL - SSLv2/v3/v23 etc.
31 31
32 BIO - methods and how they plug together 32 BIO - methods and how they plug together
33 33
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 Ok, where to begin.... 541 Ok, where to begin....
542 In the begining, when SSLeay was small (April 1995), there 542 In the begining, when SSLeay was small (April 1995), there
543 were but few applications, they did happily cohabit in 543 were but few applications, they did happily cohabit in
544 the one bin directory. Then over time, they did multiply and grow, 544 the one bin directory. Then over time, they did multiply and grow,
545 and they started to look like microsoft software; 500k to print 'hello world'. 545 and they started to look like microsoft software; 500k to print 'hello world'.
546 A new approach was needed. They were coalessed into one 'Monolithic' 546 A new approach was needed. They were coalessed into one 'Monolithic'
547 application, ssleay. This one program is composed of many programs that 547 application, ssleay. This one program is composed of many programs that
548 can all be compiled independantly. 548 can all be compiled independantly.
549 549
550 ssleay has 3 modes of operation. 550 ssleay has 3 modes of operation.
551 1) If the ssleay binaray has the name of one of its component programs, it 551 1) If the ssleay binary has the name of one of its component programs, it
552 executes that program and then exits. This can be achieve by using hard or 552 executes that program and then exits. This can be achieved by using hard or
553 symbolic links, or failing that, just renaming the binary. 553 symbolic links, or failing that, just renaming the binary.
554 2) If the first argument to ssleay is the name of one of the component 554 2) If the first argument to ssleay is the name of one of the component
555 programs, that program runs that program and then exits. 555 programs, that program runs that program and then exits.
556 3) If there are no arguments, ssleay enters a 'command' mode. Each line is 556 3) If there are no arguments, ssleay enters a 'command' mode. Each line is
557 interpreted as a program name plus arguments. After each 'program' is run, 557 interpreted as a program name plus arguments. After each 'program' is run,
558 ssleay returns to the comand line. 558 ssleay returns to the comand line.
559 559
560 dgst - message digests 560 dgst - message digests
561 enc - encryption and base64 encoding 561 enc - encryption and base64 encoding
562 562
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
1178 - 'Method' is the BIO method. 1178 - 'Method' is the BIO method.
1179 - 'callback', when configured, is called before and after 1179 - 'callback', when configured, is called before and after
1180 each BIO method is called for that particular BIO. This 1180 each BIO method is called for that particular BIO. This
1181 is intended primarily for debugging and of informational feedback. 1181 is intended primarily for debugging and of informational feedback.
1182 - 'init' is 0 when the BIO can be used for operation. 1182 - 'init' is 0 when the BIO can be used for operation.
1183 Often, after a BIO is created, a number of operations may 1183 Often, after a BIO is created, a number of operations may
1184 need to be performed before it is available for use. An 1184 need to be performed before it is available for use. An
1185 example is for BIO_s_sock(). A socket needs to be 1185 example is for BIO_s_sock(). A socket needs to be
1186 assigned to the BIO before it can be used. 1186 assigned to the BIO before it can be used.
1187 - 'shutdown', this flag indicates if the underlying 1187 - 'shutdown', this flag indicates if the underlying
1188 » comunication primative being used should be closed/freed 1188 » communication primitive being used should be closed/freed
1189 when the BIO is closed. 1189 when the BIO is closed.
1190 - 'flags' is used to hold extra state. It is primarily used 1190 - 'flags' is used to hold extra state. It is primarily used
1191 to hold information about why a non-blocking operation 1191 to hold information about why a non-blocking operation
1192 failed and to record startup protocol information for the 1192 failed and to record startup protocol information for the
1193 SSL BIO. 1193 SSL BIO.
1194 - 'num' and 'ptr' are used to hold instance specific state 1194 - 'num' and 'ptr' are used to hold instance specific state
1195 like file descriptors or local data structures. 1195 like file descriptors or local data structures.
1196 - 'next_bio' is used by filter BIOs to hold the pointer of the 1196 - 'next_bio' is used by filter BIOs to hold the pointer of the
1197 next BIO in the chain. written data is sent to this BIO and 1197 next BIO in the chain. written data is sent to this BIO and
1198 data read is taken from it. 1198 data read is taken from it.
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
1792 int BN_zero(BIGNUM *a) 1792 int BN_zero(BIGNUM *a)
1793 Set 'a' to hold the value zero. 1793 Set 'a' to hold the value zero.
1794 This is a=0. 1794 This is a=0.
1795 1795
1796 int BN_set_word(BIGNUM *a, unsigned long w); 1796 int BN_set_word(BIGNUM *a, unsigned long w);
1797 Set 'a' to hold the value of 'w'. 'w' is an unsigned long. 1797 Set 'a' to hold the value of 'w'. 'w' is an unsigned long.
1798 This is a=w. 1798 This is a=w.
1799 1799
1800 unsigned long BN_get_word(BIGNUM *a); 1800 unsigned long BN_get_word(BIGNUM *a);
1801 Returns 'a' in an unsigned long. Not remarkably, often 'a' will 1801 Returns 'a' in an unsigned long. Not remarkably, often 'a' will
1802 » be biger than a word, in which case 0xffffffffL is returned. 1802 » be bigger than a word, in which case 0xffffffffL is returned.
1803 1803
1804 Word Operations 1804 Word Operations
1805 These functions are much more efficient that the normal bignum arithmetic 1805 These functions are much more efficient that the normal bignum arithmetic
1806 operations. 1806 operations.
1807 1807
1808 BN_ULONG BN_mod_word(BIGNUM *a, unsigned long w); 1808 BN_ULONG BN_mod_word(BIGNUM *a, unsigned long w);
1809 Return the remainder of 'a' divided by 'w'. 1809 Return the remainder of 'a' divided by 'w'.
1810 This is return(a%w). 1810 This is return(a%w).
1811 1811
1812 int BN_add_word(BIGNUM *a, unsigned long w); 1812 int BN_add_word(BIGNUM *a, unsigned long w);
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
2051 #define PEM_read_bio_PKCS7(bp,x,cb) 2051 #define PEM_read_bio_PKCS7(bp,x,cb)
2052 #define PEM_read_bio_DHparams(bp,x,cb) 2052 #define PEM_read_bio_DHparams(bp,x,cb)
2053 int i2d_Netscape_RSA(RSA *a, unsigned char **pp, int (*cb)()); 2053 int i2d_Netscape_RSA(RSA *a, unsigned char **pp, int (*cb)());
2054 RSA *d2i_Netscape_RSA(RSA **a, unsigned char **pp, long length, int (*cb)()); 2054 RSA *d2i_Netscape_RSA(RSA **a, unsigned char **pp, long length, int (*cb)());
2055 2055
2056 Now you will notice that macros like 2056 Now you will notice that macros like
2057 #define PEM_write_X509(fp,x) \ 2057 #define PEM_write_X509(fp,x) \
2058 PEM_ASN1_write((int (*)())i2d_X509,PEM_STRING_X509,fp, \ 2058 PEM_ASN1_write((int (*)())i2d_X509,PEM_STRING_X509,fp, \
2059 (char *)x, NULL,NULL,0,NULL) 2059 (char *)x, NULL,NULL,0,NULL)
2060 Don't do encryption normally. If you want to PEM encrypt your X509 structure, 2060 Don't do encryption normally. If you want to PEM encrypt your X509 structure,
2061 either just call PEM_ASN1_write directly or just define you own 2061 either just call PEM_ASN1_write directly or just define your own
2062 macro variant. As you can see, this macro just sets all encryption related 2062 macro variant. As you can see, this macro just sets all encryption related
2063 parameters to NULL. 2063 parameters to NULL.
2064 2064
2065 2065
2066 -------------------------- 2066 --------------------------
2067 The SSL library. 2067 The SSL library.
2068 2068
2069 #define SSL_set_info_callback(ssl,cb) 2069 #define SSL_set_info_callback(ssl,cb)
2070 #define SSL_CTX_set_info_callback(ctx,cb) 2070 #define SSL_CTX_set_info_callback(ctx,cb)
2071 void callback(SSL *ssl,int location,int ret) 2071 void callback(SSL *ssl,int location,int ret)
(...skipping 3487 matching lines...) Expand 10 before | Expand all | Expand 10 after
5559 cached SSL_SESSIONS (which can be reused) and the certificate lookup 5559 cached SSL_SESSIONS (which can be reused) and the certificate lookup
5560 information. Each SSL structure needs to be associated with a SSL_CTX. 5560 information. Each SSL structure needs to be associated with a SSL_CTX.
5561 Normally only one SSL_CTX structure is needed per program. 5561 Normally only one SSL_CTX structure is needed per program.
5562 5562
5563 SSL_CTX *SSL_CTX_new(void ); 5563 SSL_CTX *SSL_CTX_new(void );
5564 void SSL_CTX_free(SSL_CTX *); 5564 void SSL_CTX_free(SSL_CTX *);
5565 These 2 functions create and destroy SSL_CTX structures 5565 These 2 functions create and destroy SSL_CTX structures
5566 5566
5567 The SSL_CTX has a session_cache_mode which is by default, 5567 The SSL_CTX has a session_cache_mode which is by default,
5568 in SSL_SESS_CACHE_SERVER mode. What this means is that the library 5568 in SSL_SESS_CACHE_SERVER mode. What this means is that the library
5569 will automatically add new session-id's to the cache apon sucsessful 5569 will automatically add new session-id's to the cache upon successful
5570 SSL_accept() calls. 5570 SSL_accept() calls.
5571 If SSL_SESS_CACHE_CLIENT is set, then client certificates are also added 5571 If SSL_SESS_CACHE_CLIENT is set, then client certificates are also added
5572 to the cache. 5572 to the cache.
5573 SSL_set_session_cache_mode(ctx,mode) will set the 'mode' and 5573 SSL_set_session_cache_mode(ctx,mode) will set the 'mode' and
5574 SSL_get_session_cache_mode(ctx) will get the cache 'mode'. 5574 SSL_get_session_cache_mode(ctx) will get the cache 'mode'.
5575 The modes can be 5575 The modes can be
5576 SSL_SESS_CACHE_OFF - no caching 5576 SSL_SESS_CACHE_OFF - no caching
5577 SSL_SESS_CACHE_CLIENT - only SSL_connect() 5577 SSL_SESS_CACHE_CLIENT - only SSL_connect()
5578 SSL_SESS_CACHE_SERVER - only SSL_accept() 5578 SSL_SESS_CACHE_SERVER - only SSL_accept()
5579 SSL_SESS_NO_CACHE_BOTH - Either SSL_accept() or SSL_connect(). 5579 SSL_SESS_NO_CACHE_BOTH - Either SSL_accept() or SSL_connect().
5580 If SSL_SESS_CACHE_NO_AUTO_CLEAR is set, old timed out sessions are 5580 If SSL_SESS_CACHE_NO_AUTO_CLEAR is set, old timed out sessions are
5581 not automatically removed each 255, SSL_connect()s or SSL_accept()s. 5581 not automatically removed each 255, SSL_connect()s or SSL_accept()s.
5582 5582
5583 By default, apon every 255 successful SSL_connect() or SSL_accept()s, 5583 By default, upon every 255 successful SSL_connect() or SSL_accept()s,
5584 the cache is flush. Please note that this could be expensive on 5584 the cache is flush. Please note that this could be expensive on
5585 a heavily loaded SSL server, in which case, turn this off and 5585 a heavily loaded SSL server, in which case, turn this off and
5586 clear the cache of old entries 'manually' (with one of the functions 5586 clear the cache of old entries 'manually' (with one of the functions
5587 listed below) every few hours. Perhaps I should up this number, it is hard 5587 listed below) every few hours. Perhaps I should up this number, it is hard
5588 to say. Remember, the '255' new calls is just a mechanims to get called 5588 to say. Remember, the '255' new calls is just a mechanism to get called
5589 every now and then, in theory at most 255 new session-id's will have been 5589 every now and then, in theory at most 255 new session-id's will have been
5590 added but if 100 are added every minute, you would still have 5590 added but if 100 are added every minute, you would still have
5591 500 in the cache before any would start being flushed (assuming a 3 minute 5591 500 in the cache before any would start being flushed (assuming a 3 minute
5592 timeout).. 5592 timeout)..
5593 5593
5594 int SSL_CTX_sess_hits(SSL_CTX *ctx); 5594 int SSL_CTX_sess_hits(SSL_CTX *ctx);
5595 int SSL_CTX_sess_misses(SSL_CTX *ctx); 5595 int SSL_CTX_sess_misses(SSL_CTX *ctx);
5596 int SSL_CTX_sess_timeouts(SSL_CTX *ctx); 5596 int SSL_CTX_sess_timeouts(SSL_CTX *ctx);
5597 These 3 functions return statistics about the SSL_CTX. These 3 are the 5597 These 3 functions return statistics about the SSL_CTX. These 3 are the
5598 number of session id reuses. hits is the number of reuses, misses are the 5598 number of session id reuses. hits is the number of reuses, misses are the
(...skipping 22 matching lines...) Expand all
5621 SSL_SESSION *get_session_callback(unsigned char *sess_id,int sess_id_len, 5621 SSL_SESSION *get_session_callback(unsigned char *sess_id,int sess_id_len,
5622 int *copy); 5622 int *copy);
5623 5623
5624 The get_session_callback is intended to return null if no session id is found. 5624 The get_session_callback is intended to return null if no session id is found.
5625 The reference count on the SSL_SESSION in incremented by the SSL library, 5625 The reference count on the SSL_SESSION in incremented by the SSL library,
5626 if copy is 1. Otherwise, the reference count is not modified. 5626 if copy is 1. Otherwise, the reference count is not modified.
5627 5627
5628 void SSL_CTX_sess_set_get_cb(ctx,cb) sets the callback and 5628 void SSL_CTX_sess_set_get_cb(ctx,cb) sets the callback and
5629 int (*cb)()SSL_CTX_sess_get_get_cb(ctx) returns the callback. 5629 int (*cb)()SSL_CTX_sess_get_get_cb(ctx) returns the callback.
5630 5630
5631 These callbacks are basically indended to be used by processes to 5631 These callbacks are basically intended to be used by processes to
5632 send their session-id's to other processes. I currently have not implemented 5632 send their session-id's to other processes. I currently have not implemented
5633 non-blocking semantics for these callbacks, it is upto the appication 5633 non-blocking semantics for these callbacks, it is upto the application
5634 to make the callbacks effiecent if they require blocking (perhaps 5634 to make the callbacks efficient if they require blocking (perhaps
5635 by 'saving' them and then 'posting them' when control returns from 5635 by 'saving' them and then 'posting them' when control returns from
5636 the SSL_accept(). 5636 the SSL_accept().
5637 5637
5638 LHASH *SSL_CTX_sessions(SSL_CTX *ctx) 5638 LHASH *SSL_CTX_sessions(SSL_CTX *ctx)
5639 This returns the session cache. The lhash strucutre can be accessed for 5639 This returns the session cache. The lhash strucutre can be accessed for
5640 statistics about the cache. 5640 statistics about the cache.
5641 5641
5642 void lh_stats(LHASH *lh, FILE *out); 5642 void lh_stats(LHASH *lh, FILE *out);
5643 void lh_node_stats(LHASH *lh, FILE *out); 5643 void lh_node_stats(LHASH *lh, FILE *out);
5644 void lh_node_usage_stats(LHASH *lh, FILE *out); 5644 void lh_node_usage_stats(LHASH *lh, FILE *out);
(...skipping 937 matching lines...) Expand 10 before | Expand all | Expand 10 after
6582 Some 'read-ahead' mode information. 6582 Some 'read-ahead' mode information.
6583 A previous session-id to re-use. 6583 A previous session-id to re-use.
6584 6584
6585 A connection is made by using SSL_connect or SSL_accept. 6585 A connection is made by using SSL_connect or SSL_accept.
6586 When non-blocking IO is being used, there are functions that can be used 6586 When non-blocking IO is being used, there are functions that can be used
6587 to determin where and why the SSL_connect or SSL_accept did not complete. 6587 to determin where and why the SSL_connect or SSL_accept did not complete.
6588 This information can be used to recall the functions when the 'error' 6588 This information can be used to recall the functions when the 'error'
6589 condition has dissapeared. 6589 condition has dissapeared.
6590 6590
6591 After the connection has been made, information can be retrived about the 6591 After the connection has been made, information can be retrived about the
6592 SSL session and the session-id values that have been decided apon. 6592 SSL session and the session-id values that have been decided upon.
6593 The 'peer' certificate can be retrieved. 6593 The 'peer' certificate can be retrieved.
6594 6594
6595 The session-id values include 6595 The session-id values include
6596 'start time' 6596 'start time'
6597 'timeout length' 6597 'timeout length'
6598 6598
6599 6599
6600 6600
6601 ==== stack.doc ======================================================== 6601 ==== stack.doc ========================================================
6602 6602
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
7021 7021
7022 If you specify a SSLv2 cipher, and the mode is SSLv23 and the server 7022 If you specify a SSLv2 cipher, and the mode is SSLv23 and the server
7023 can talk SSLv3, it will claim there is no cipher since you should be 7023 can talk SSLv3, it will claim there is no cipher since you should be
7024 using SSLv3. 7024 using SSLv3.
7025 7025
7026 When tracing debug stuff, remember BIO_s_socket() is different to 7026 When tracing debug stuff, remember BIO_s_socket() is different to
7027 BIO_s_connect(). 7027 BIO_s_connect().
7028 7028
7029 BSD/OS assember is not working 7029 BSD/OS assember is not working
7030 7030
OLDNEW
« no previous file with comments | « openssl/doc/ssl/ssl.pod ('k') | openssl/doc/standards.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698