diff options
| author | schwarze <> | 2015-02-14 13:54:59 +0000 |
|---|---|---|
| committer | schwarze <> | 2015-02-14 13:54:59 +0000 |
| commit | d546383ce8a856bff354c6823d20fdfe1da6a653 (patch) | |
| tree | 1405d05559e07c92604d649882549c9d103f1bae | |
| parent | e2784ea0eadb4672a77993d540ef3be8ed05f3be (diff) | |
| download | openbsd-d546383ce8a856bff354c6823d20fdfe1da6a653.tar.gz openbsd-d546383ce8a856bff354c6823d20fdfe1da6a653.tar.bz2 openbsd-d546383ce8a856bff354c6823d20fdfe1da6a653.zip | |
While doing development work on pod2mdoc(1),
profit of the occasion to start the conversion of
LibreSSL libcrypto manuals from perlpod(1) to mdoc(7).
miod@ jmc@ bentley@ agreed to the process when shown this patch.
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/man/ASN1_OBJECT_new.3 | 61 | ||||
| -rw-r--r-- | src/lib/libcrypto/man/ASN1_STRING_length.3 | 165 | ||||
| -rw-r--r-- | src/lib/libcrypto/man/ASN1_STRING_new.3 | 58 | ||||
| -rw-r--r-- | src/lib/libcrypto/man/ASN1_STRING_print_ex.3 | 151 | ||||
| -rw-r--r-- | src/lib/libcrypto/man/ASN1_generate_nconf.3 | 331 | ||||
| -rw-r--r-- | src/lib/libcrypto/man/Makefile | 10 | ||||
| -rw-r--r-- | src/lib/libssl/src/doc/crypto/ASN1_OBJECT_new.pod | 46 | ||||
| -rw-r--r-- | src/lib/libssl/src/doc/crypto/ASN1_STRING_length.pod | 83 | ||||
| -rw-r--r-- | src/lib/libssl/src/doc/crypto/ASN1_STRING_new.pod | 42 | ||||
| -rw-r--r-- | src/lib/libssl/src/doc/crypto/ASN1_STRING_print_ex.pod | 95 | ||||
| -rw-r--r-- | src/lib/libssl/src/doc/crypto/ASN1_generate_nconf.pod | 265 |
11 files changed, 773 insertions, 534 deletions
diff --git a/src/lib/libcrypto/man/ASN1_OBJECT_new.3 b/src/lib/libcrypto/man/ASN1_OBJECT_new.3 new file mode 100644 index 0000000000..a636e7182e --- /dev/null +++ b/src/lib/libcrypto/man/ASN1_OBJECT_new.3 | |||
| @@ -0,0 +1,61 @@ | |||
| 1 | .Dd August 12, 2014 | ||
| 2 | .Dt ASN1_OBJECT_NEW 3 | ||
| 3 | .Os | ||
| 4 | .Sh NAME | ||
| 5 | .Nm ASN1_OBJECT_new , | ||
| 6 | .Nm ASN1_OBJECT_free | ||
| 7 | .Nd ASN1 object allocation functions | ||
| 8 | .Sh SYNOPSIS | ||
| 9 | .In openssl/asn1.h | ||
| 10 | .Ft ASN1_OBJECT * | ||
| 11 | .Fo ASN1_OBJECT_new | ||
| 12 | .Fa void | ||
| 13 | .Fc | ||
| 14 | .Ft void | ||
| 15 | .Fo ASN1_OBJECT_free | ||
| 16 | .Fa "ASN1_OBJECT *a" | ||
| 17 | .Fc | ||
| 18 | .Sh DESCRIPTION | ||
| 19 | The ASN1_OBJECT allocation routines allocate and free an | ||
| 20 | .Vt ASN1_OBJECT | ||
| 21 | structure, which represents an ASN1 OBJECT IDENTIFIER. | ||
| 22 | .Pp | ||
| 23 | .Fn ASN1_OBJECT_new | ||
| 24 | allocates and initializes an | ||
| 25 | .Vt ASN1_OBJECT | ||
| 26 | structure. | ||
| 27 | .Pp | ||
| 28 | .Fn ASN1_OBJECT_free | ||
| 29 | frees up the | ||
| 30 | .Vt ASN1_OBJECT | ||
| 31 | structure | ||
| 32 | .Fa a . | ||
| 33 | .Sh NOTES | ||
| 34 | Although | ||
| 35 | .Fn ASN1_OBJECT_new | ||
| 36 | allocates a new | ||
| 37 | .Vt ASN1_OBJECT | ||
| 38 | structure, it is almost never used in applications. | ||
| 39 | The ASN1 object utility functions such as | ||
| 40 | .Xr OBJ_nid2obj 3 | ||
| 41 | are used instead. | ||
| 42 | .Sh RETURN VALUES | ||
| 43 | If the allocation fails, | ||
| 44 | .Fn ASN1_OBJECT_new | ||
| 45 | returns | ||
| 46 | .Dv NULL | ||
| 47 | and sets an error code that can be obtained by | ||
| 48 | .Xr ERR_get_error 3 . | ||
| 49 | Otherwise it returns a pointer to the newly allocated structure. | ||
| 50 | .Pp | ||
| 51 | .Fn ASN1_OBJECT_free | ||
| 52 | returns no value. | ||
| 53 | .Sh SEE ALSO | ||
| 54 | .Xr d2i_ASN1_OBJECT 3 , | ||
| 55 | .Xr ERR_get_error 3 , | ||
| 56 | .Xr OBJ_nid2obj 3 | ||
| 57 | .Sh HISTORY | ||
| 58 | .Fn ASN1_OBJECT_new | ||
| 59 | and | ||
| 60 | .Fn ASN1_OBJECT_free | ||
| 61 | are available in all versions of SSLeay and OpenSSL. | ||
diff --git a/src/lib/libcrypto/man/ASN1_STRING_length.3 b/src/lib/libcrypto/man/ASN1_STRING_length.3 new file mode 100644 index 0000000000..71744587be --- /dev/null +++ b/src/lib/libcrypto/man/ASN1_STRING_length.3 | |||
| @@ -0,0 +1,165 @@ | |||
| 1 | .Dd July 17, 2014 | ||
| 2 | .Dt ASN1_STRING_LENGTH 3 | ||
| 3 | .Os | ||
| 4 | .Sh NAME | ||
| 5 | .Nm ASN1_STRING_cmp , | ||
| 6 | .Nm ASN1_STRING_data , | ||
| 7 | .Nm ASN1_STRING_dup , | ||
| 8 | .Nm ASN1_STRING_length , | ||
| 9 | .Nm ASN1_STRING_length_set , | ||
| 10 | .Nm ASN1_STRING_set , | ||
| 11 | .Nm ASN1_STRING_to_UTF8 , | ||
| 12 | .Nm ASN1_STRING_type | ||
| 13 | .Nd ASN1_STRING utility functions | ||
| 14 | .Sh SYNOPSIS | ||
| 15 | .In openssl/asn1.h | ||
| 16 | .Ft int | ||
| 17 | .Fo ASN1_STRING_cmp | ||
| 18 | .Fa "ASN1_STRING *a" | ||
| 19 | .Fa "ASN1_STRING *b" | ||
| 20 | .Fc | ||
| 21 | .Ft unsigned char * | ||
| 22 | .Fo ASN1_STRING_data | ||
| 23 | .Fa "ASN1_STRING *x" | ||
| 24 | .Fc | ||
| 25 | .Ft ASN1_STRING * | ||
| 26 | .Fo ASN1_STRING_dup | ||
| 27 | .Fa "ASN1_STRING *a" | ||
| 28 | .Fc | ||
| 29 | .Ft int | ||
| 30 | .Fo ASN1_STRING_length | ||
| 31 | .Fa "ASN1_STRING *x" | ||
| 32 | .Fc | ||
| 33 | .Ft void | ||
| 34 | .Fo ASN1_STRING_length_set | ||
| 35 | .Fa "ASN1_STRING *x" | ||
| 36 | .Fa "int len" | ||
| 37 | .Fc | ||
| 38 | .Ft int | ||
| 39 | .Fo ASN1_STRING_set | ||
| 40 | .Fa "ASN1_STRING *str" | ||
| 41 | .Fa "const void *data" | ||
| 42 | .Fa "int len" | ||
| 43 | .Fc | ||
| 44 | .Ft int | ||
| 45 | .Fo ASN1_STRING_to_UTF8 | ||
| 46 | .Fa "unsigned char **out" | ||
| 47 | .Fa "ASN1_STRING *in" | ||
| 48 | .Fc | ||
| 49 | .Ft int | ||
| 50 | .Fo ASN1_STRING_type | ||
| 51 | .Fa "ASN1_STRING *x" | ||
| 52 | .Fc | ||
| 53 | .Sh DESCRIPTION | ||
| 54 | These functions manipulate | ||
| 55 | .Vt ASN1_STRING | ||
| 56 | structures. | ||
| 57 | .Pp | ||
| 58 | .Fn ASN1_STRING_cmp | ||
| 59 | compares | ||
| 60 | .Fa a | ||
| 61 | and | ||
| 62 | .Fa b | ||
| 63 | and returns 0 if the two are identical. | ||
| 64 | The string types and the content are compared. | ||
| 65 | .Pp | ||
| 66 | .Fn ASN1_STRING_data | ||
| 67 | returns an internal pointer to the data of | ||
| 68 | .Fa x . | ||
| 69 | Since this is an internal pointer, it should | ||
| 70 | .Em not | ||
| 71 | be freed or modified in any way. | ||
| 72 | .Pp | ||
| 73 | .Fn ASN1_STRING_dup | ||
| 74 | returns a copy of the structure | ||
| 75 | .Fa a . | ||
| 76 | .Pp | ||
| 77 | .Fn ASN1_STRING_length | ||
| 78 | returns the length of the content of | ||
| 79 | .Fa x . | ||
| 80 | .Pp | ||
| 81 | .Fn ASN1_STRING_length_set | ||
| 82 | sets the length attribute of | ||
| 83 | .Fa x | ||
| 84 | to | ||
| 85 | .Fa len . | ||
| 86 | It may put | ||
| 87 | .Fa x | ||
| 88 | into an inconsistent internal state. | ||
| 89 | .Pp | ||
| 90 | .Fn ASN1_STRING_set | ||
| 91 | sets the data of the string | ||
| 92 | .Fa str | ||
| 93 | to the buffer | ||
| 94 | .Fa data | ||
| 95 | of length | ||
| 96 | .Fa len . | ||
| 97 | The supplied data is copied. | ||
| 98 | If | ||
| 99 | .Fa len | ||
| 100 | is -1 then the length is determined by | ||
| 101 | .Fn strlen data . | ||
| 102 | .Pp | ||
| 103 | .Fn ASN1_STRING_to_UTF8 | ||
| 104 | converts the string | ||
| 105 | .Fa in | ||
| 106 | to UTF8 format. | ||
| 107 | The converted data is copied into a newly allocated buffer | ||
| 108 | .Fa out . | ||
| 109 | The length of | ||
| 110 | .Fa out | ||
| 111 | is returned or a negative error code. | ||
| 112 | The buffer | ||
| 113 | .Fa out | ||
| 114 | should be freed using | ||
| 115 | .Xr free 3 . | ||
| 116 | .Pp | ||
| 117 | .Fn ASN1_STRING_type | ||
| 118 | returns the type of | ||
| 119 | .Fa x , | ||
| 120 | using standard constants such as | ||
| 121 | .Dv V_ASN1_OCTET_STRING . | ||
| 122 | .Sh NOTES | ||
| 123 | Almost all ASN1 types in OpenSSL are represented as | ||
| 124 | .Vt ASN1_STRING | ||
| 125 | structures. | ||
| 126 | Other types such as | ||
| 127 | .Vt ASN1_OCTET_STRING | ||
| 128 | are simply typedefed to | ||
| 129 | .Vt ASN1_STRING | ||
| 130 | and the functions call the | ||
| 131 | .Vt ASN1_STRING | ||
| 132 | equivalents. | ||
| 133 | .Vt ASN1_STRING | ||
| 134 | is also used for some | ||
| 135 | .Sy CHOICE | ||
| 136 | types which consist entirely of primitive string types such as | ||
| 137 | .Sy DirectoryString | ||
| 138 | and | ||
| 139 | .Sy Time . | ||
| 140 | .Pp | ||
| 141 | These functions should | ||
| 142 | .Em not | ||
| 143 | be used to examine or modify | ||
| 144 | .Vt ASN1_INTEGER | ||
| 145 | or | ||
| 146 | .Vt ASN1_ENUMERATED | ||
| 147 | types: the relevant | ||
| 148 | .Sy INTEGER | ||
| 149 | or | ||
| 150 | .Sy ENUMERATED | ||
| 151 | utility functions should be used instead. | ||
| 152 | .Pp | ||
| 153 | In general it cannot be assumed that the data returned by | ||
| 154 | .Fn ASN1_STRING_data | ||
| 155 | is NUL terminated, and it may contain embedded NUL characters. | ||
| 156 | The actual format of the data will depend on the actual string type itself: | ||
| 157 | for example for an IA5String the data will be ASCII, | ||
| 158 | for a BMPString two bytes per character in big endian format, | ||
| 159 | UTF8String will be in UTF8 format. | ||
| 160 | .Pp | ||
| 161 | Similar care should be take to ensure the data is in the correct format | ||
| 162 | when calling | ||
| 163 | .Fn ASN1_STRING_set . | ||
| 164 | .Sh SEE ALSO | ||
| 165 | .Xr ERR_get_error 3 | ||
diff --git a/src/lib/libcrypto/man/ASN1_STRING_new.3 b/src/lib/libcrypto/man/ASN1_STRING_new.3 new file mode 100644 index 0000000000..cd28b98af6 --- /dev/null +++ b/src/lib/libcrypto/man/ASN1_STRING_new.3 | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | .Dd July 17, 2014 | ||
| 2 | .Dt ASN1_STRING_NEW 3 | ||
| 3 | .Os | ||
| 4 | .Sh NAME | ||
| 5 | .Nm ASN1_STRING_new , | ||
| 6 | .Nm ASN1_STRING_type_new , | ||
| 7 | .Nm ASN1_STRING_free | ||
| 8 | .Nd ASN1_STRING allocation functions | ||
| 9 | .Sh SYNOPSIS | ||
| 10 | .In openssl/asn1.h | ||
| 11 | .Ft ASN1_STRING * | ||
| 12 | .Fo ASN1_STRING_new | ||
| 13 | .Fa void | ||
| 14 | .Fc | ||
| 15 | .Ft ASN1_STRING * | ||
| 16 | .Fo ASN1_STRING_type_new | ||
| 17 | .Fa "int type" | ||
| 18 | .Fc | ||
| 19 | .Ft void | ||
| 20 | .Fo ASN1_STRING_free | ||
| 21 | .Fa "ASN1_STRING *a" | ||
| 22 | .Fc | ||
| 23 | .Sh DESCRIPTION | ||
| 24 | .Fn ASN1_STRING_new | ||
| 25 | returns an allocated | ||
| 26 | .Vt ASN1_STRING | ||
| 27 | structure. | ||
| 28 | Its type is undefined. | ||
| 29 | .Pp | ||
| 30 | .Fn ASN1_STRING_type_new | ||
| 31 | returns an allocated | ||
| 32 | .Vt ASN1_STRING | ||
| 33 | structure of type | ||
| 34 | .Fa type . | ||
| 35 | .Pp | ||
| 36 | .Fn ASN1_STRING_free | ||
| 37 | frees up | ||
| 38 | .Fa a . | ||
| 39 | .Sh NOTES | ||
| 40 | Other string types call the ASN1_STRING functions. | ||
| 41 | For example | ||
| 42 | .Fn ASN1_OCTET_STRING_new | ||
| 43 | calls | ||
| 44 | .Fn ASN1_STRING_type V_ASN1_OCTET_STRING . | ||
| 45 | .Sh RETURN VALUES | ||
| 46 | .Fn ASN1_STRING_new | ||
| 47 | and | ||
| 48 | .Fn ASN1_STRING_type_new | ||
| 49 | return a valid | ||
| 50 | .Vt ASN1_STRING | ||
| 51 | structure or | ||
| 52 | .Dv NULL | ||
| 53 | if an error occurred. | ||
| 54 | .Pp | ||
| 55 | .Fn ASN1_STRING_free | ||
| 56 | does not return a value. | ||
| 57 | .Sh SEE ALSO | ||
| 58 | .Xr ERR_get_error 3 | ||
diff --git a/src/lib/libcrypto/man/ASN1_STRING_print_ex.3 b/src/lib/libcrypto/man/ASN1_STRING_print_ex.3 new file mode 100644 index 0000000000..1d6495d199 --- /dev/null +++ b/src/lib/libcrypto/man/ASN1_STRING_print_ex.3 | |||
| @@ -0,0 +1,151 @@ | |||
| 1 | .Dd July 17, 2014 | ||
| 2 | .Dt ASN1_STRING_PRINT_EX 3 | ||
| 3 | .Os | ||
| 4 | .Sh NAME | ||
| 5 | .Nm ASN1_STRING_print_ex , | ||
| 6 | .Nm ASN1_STRING_print_ex_fp , | ||
| 7 | .Nm ASN1_STRING_print | ||
| 8 | .Nd ASN1_STRING output routines | ||
| 9 | .Sh SYNOPSIS | ||
| 10 | .In openssl/asn1.h | ||
| 11 | .Ft int | ||
| 12 | .Fo ASN1_STRING_print_ex | ||
| 13 | .Fa "BIO *out" | ||
| 14 | .Fa "ASN1_STRING *str" | ||
| 15 | .Fa "unsigned long flags" | ||
| 16 | .Fc | ||
| 17 | .Ft int | ||
| 18 | .Fo ASN1_STRING_print_ex_fp | ||
| 19 | .Fa "FILE *fp" | ||
| 20 | .Fa "ASN1_STRING *str" | ||
| 21 | .Fa "unsigned long flags" | ||
| 22 | .Fc | ||
| 23 | .Ft int | ||
| 24 | .Fo ASN1_STRING_print | ||
| 25 | .Fa "BIO *out" | ||
| 26 | .Fa "ASN1_STRING *str" | ||
| 27 | .Fc | ||
| 28 | .Sh DESCRIPTION | ||
| 29 | These functions output an | ||
| 30 | .Vt ASN1_STRING | ||
| 31 | structure. | ||
| 32 | .Vt ASN1_STRING | ||
| 33 | is used to | ||
| 34 | represent all the ASN1 string types. | ||
| 35 | .Pp | ||
| 36 | .Fn ASN1_STRING_print_ex | ||
| 37 | outputs | ||
| 38 | .Fa str | ||
| 39 | to | ||
| 40 | .Fa out , | ||
| 41 | the format is determined by the options | ||
| 42 | .Fa flags . | ||
| 43 | .Fn ASN1_STRING_print_ex_fp | ||
| 44 | is identical except it outputs to | ||
| 45 | .Fa fp | ||
| 46 | instead. | ||
| 47 | .Pp | ||
| 48 | .Fn ASN1_STRING_print | ||
| 49 | prints | ||
| 50 | .Fa str | ||
| 51 | to | ||
| 52 | .Fa out | ||
| 53 | but using a different format to | ||
| 54 | .Fn ASN1_STRING_print_ex . | ||
| 55 | It replaces unprintable characters (other than CR, LF) with | ||
| 56 | .Sq \&. . | ||
| 57 | .Sh NOTES | ||
| 58 | .Fn ASN1_STRING_print | ||
| 59 | is a legacy function which should be avoided in new | ||
| 60 | applications. | ||
| 61 | .Pp | ||
| 62 | Although there are a large number of options frequently | ||
| 63 | .Dv ASN1_STRFLGS_RFC2253 | ||
| 64 | is suitable, or on UTF8 terminals | ||
| 65 | .Dv ASN1_STRFLGS_RFC2253 No & | ||
| 66 | .Pf ~ Dv ASN1_STRFLGS_ESC_MSB . | ||
| 67 | .Pp | ||
| 68 | The complete set of supported options for | ||
| 69 | .Fa flags | ||
| 70 | is listed below. | ||
| 71 | .Pp | ||
| 72 | Various characters can be escaped. | ||
| 73 | If | ||
| 74 | .Dv ASN1_STRFLGS_ESC_2253 | ||
| 75 | is set, the characters determined by RFC2253 are escaped. | ||
| 76 | If | ||
| 77 | .Dv ASN1_STRFLGS_ESC_CTRL | ||
| 78 | is set, control characters are escaped. | ||
| 79 | If | ||
| 80 | .Dv ASN1_STRFLGS_ESC_MSB | ||
| 81 | is set, characters with the MSB set are escaped: this option should | ||
| 82 | .Em not | ||
| 83 | be used if the terminal correctly interprets UTF8 sequences. | ||
| 84 | .Pp | ||
| 85 | Escaping takes several forms. | ||
| 86 | .Pp | ||
| 87 | If the character being escaped is a 16 bit character then the form "\eUXXXX" | ||
| 88 | is used using exactly four characters for the hex representation. | ||
| 89 | If it is 32 bits then "\eWXXXXXXXX" is used using eight characters | ||
| 90 | of its hex representation. | ||
| 91 | These forms will only be used if UTF8 conversion is not set (see below). | ||
| 92 | .Pp | ||
| 93 | Printable characters are normally escaped using the backslash | ||
| 94 | .Pq Sq \e | ||
| 95 | character. | ||
| 96 | If | ||
| 97 | .Dv ASN1_STRFLGS_ESC_QUOTE | ||
| 98 | is set, then the whole string is instead surrounded by double quote | ||
| 99 | characters: this is arguably more readable than the backslash notation. | ||
| 100 | Other characters use the "\eXX" using exactly two characters of the hex | ||
| 101 | representation. | ||
| 102 | .Pp | ||
| 103 | If | ||
| 104 | .Dv ASN1_STRFLGS_UTF8_CONVERT | ||
| 105 | is set, then characters are converted to UTF8 format first. | ||
| 106 | If the terminal supports the display of UTF8 sequences then this | ||
| 107 | option will correctly display multi byte characters. | ||
| 108 | .Pp | ||
| 109 | If | ||
| 110 | .Dv ASN1_STRFLGS_IGNORE_TYPE | ||
| 111 | is set, then the string type is not interpreted at all: | ||
| 112 | everything is assumed to be one byte per character. | ||
| 113 | This is primarily for debugging purposes and can result | ||
| 114 | in confusing output in multi character strings. | ||
| 115 | .Pp | ||
| 116 | If | ||
| 117 | .Dv ASN1_STRFLGS_SHOW_TYPE | ||
| 118 | is set, then the string type itself is printed out before its value | ||
| 119 | (for example "BMPSTRING"), this actually uses | ||
| 120 | .Fn ASN1_tag2str . | ||
| 121 | .Pp | ||
| 122 | The content of a string instead of being interpreted can be "dumped": | ||
| 123 | this just outputs the value of the string using the form #XXXX | ||
| 124 | using hex format for each octet. | ||
| 125 | .Pp | ||
| 126 | If | ||
| 127 | .Dv ASN1_STRFLGS_DUMP_ALL | ||
| 128 | is set, then any type is dumped. | ||
| 129 | .Pp | ||
| 130 | Normally non character string types (such as OCTET STRING) | ||
| 131 | are assumed to be one byte per character; if | ||
| 132 | .Dv ASN1_STRFLGS_DUMP_UNKNOWN | ||
| 133 | is set, then they will be dumped instead. | ||
| 134 | .Pp | ||
| 135 | When a type is dumped normally just the content octets are printed; if | ||
| 136 | .Dv ASN1_STRFLGS_DUMP_DER | ||
| 137 | is set, then the complete encoding is dumped | ||
| 138 | instead (including tag and length octets). | ||
| 139 | .Pp | ||
| 140 | .Dv ASN1_STRFLGS_RFC2253 | ||
| 141 | includes all the flags required by RFC2253. | ||
| 142 | It is equivalent to | ||
| 143 | .Dv ASN1_STRFLGS_ESC_2253 | | ||
| 144 | .Dv ASN1_STRFLGS_ESC_CTRL | | ||
| 145 | .Dv ASN1_STRFLGS_ESC_MSB | | ||
| 146 | .Dv ASN1_STRFLGS_UTF8_CONVERT | | ||
| 147 | .Dv ASN1_STRFLGS_DUMP_UNKNOWN | | ||
| 148 | .Dv ASN1_STRFLGS_DUMP_DER . | ||
| 149 | .Sh SEE ALSO | ||
| 150 | .Xr ASN1_tag2str 3 , | ||
| 151 | .Xr X509_NAME_print_ex 3 | ||
diff --git a/src/lib/libcrypto/man/ASN1_generate_nconf.3 b/src/lib/libcrypto/man/ASN1_generate_nconf.3 new file mode 100644 index 0000000000..0f0d3727d4 --- /dev/null +++ b/src/lib/libcrypto/man/ASN1_generate_nconf.3 | |||
| @@ -0,0 +1,331 @@ | |||
| 1 | .Dd July 17, 2014 | ||
| 2 | .Dt ASN1_GENERATE_NCONF 3 | ||
| 3 | .Os | ||
| 4 | .Sh NAME | ||
| 5 | .Nm ASN1_generate_nconf , | ||
| 6 | .Nm ASN1_generate_v3 | ||
| 7 | .Nd ASN1 generation functions | ||
| 8 | .Sh SYNOPSIS | ||
| 9 | .In openssl/asn1.h | ||
| 10 | .Ft ASN1_TYPE * | ||
| 11 | .Fo ASN1_generate_nconf | ||
| 12 | .Fa "char *str" | ||
| 13 | .Fa "CONF *nconf" | ||
| 14 | .Fc | ||
| 15 | .Ft ASN1_TYPE * | ||
| 16 | .Fo ASN1_generate_v3 | ||
| 17 | .Fa "char *str" | ||
| 18 | .Fa "X509V3_CTX *cnf" | ||
| 19 | .Fc | ||
| 20 | .Sh DESCRIPTION | ||
| 21 | These functions generate the ASN1 encoding of a string in an | ||
| 22 | .Vt ASN1_TYPE | ||
| 23 | structure. | ||
| 24 | .Pp | ||
| 25 | .Fa str | ||
| 26 | contains the string to encode | ||
| 27 | .Fa nconf | ||
| 28 | or | ||
| 29 | .Fa cnf | ||
| 30 | contains the optional configuration information | ||
| 31 | where additional strings will be read from. | ||
| 32 | .Fa nconf | ||
| 33 | will typically come from a config file whereas | ||
| 34 | .Fa cnf | ||
| 35 | is obtained from an | ||
| 36 | .Vt X509V3_CTX | ||
| 37 | structure which will typically be used | ||
| 38 | by X509 v3 certificate extension functions. | ||
| 39 | .Fa cnf | ||
| 40 | or | ||
| 41 | .Fa nconf | ||
| 42 | can be set to | ||
| 43 | .Dv NULL | ||
| 44 | if no additional configuration will be used. | ||
| 45 | .Sh GENERATION STRING FORMAT | ||
| 46 | The actual data encoded is determined by the string | ||
| 47 | .Fa str | ||
| 48 | and the configuration information. | ||
| 49 | The general format of the string is: | ||
| 50 | .Pp | ||
| 51 | .D1 Oo Ar modifier , Oc Ns Ar type Ns Op : Ns Ar value | ||
| 52 | .Pp | ||
| 53 | That is zero or more comma separated modifiers followed by a type | ||
| 54 | followed by an optional colon and a value. | ||
| 55 | The formats of | ||
| 56 | .Ar type , | ||
| 57 | .Ar value | ||
| 58 | and | ||
| 59 | .Ar modifier | ||
| 60 | are explained below. | ||
| 61 | .Ss Supported types | ||
| 62 | The supported types are listed below. | ||
| 63 | Unless otherwise specified, only the | ||
| 64 | .Cm ASCII | ||
| 65 | format is permissible. | ||
| 66 | .Bl -tag -width Ds | ||
| 67 | .It Cm BOOLEAN , BOOL | ||
| 68 | This encodes a boolean type. | ||
| 69 | The | ||
| 70 | .Ar value | ||
| 71 | string is mandatory and should be | ||
| 72 | .Cm TRUE | ||
| 73 | or | ||
| 74 | .Cm FALSE . | ||
| 75 | Additionally | ||
| 76 | .Cm true , | ||
| 77 | .Cm Y , | ||
| 78 | .Cm y , | ||
| 79 | .Cm YES , | ||
| 80 | .Cm yes , | ||
| 81 | .Cm false , | ||
| 82 | .Cm N , | ||
| 83 | .Cm n , | ||
| 84 | .Cm NO | ||
| 85 | and | ||
| 86 | .Cm no | ||
| 87 | are acceptable. | ||
| 88 | .It Cm NULL | ||
| 89 | Encode the NULL type. | ||
| 90 | The | ||
| 91 | .Ar value | ||
| 92 | string must not be present. | ||
| 93 | .It Cm INTEGER , INT | ||
| 94 | Encodes an ASN1 INTEGER type. | ||
| 95 | The | ||
| 96 | .Ar value | ||
| 97 | string represents the value of the integer. | ||
| 98 | It can be prefaced by a minus sign | ||
| 99 | and is normally interpreted as a decimal value unless the prefix | ||
| 100 | .Cm 0x | ||
| 101 | is included. | ||
| 102 | .It Cm ENUMERATED , ENUM | ||
| 103 | Encodes the ASN1 ENUMERATED type. | ||
| 104 | It is otherwise identical to | ||
| 105 | .Cm INTEGER . | ||
| 106 | .It Cm OBJECT , OID | ||
| 107 | Encodes an ASN1 OBJECT IDENTIFIER. | ||
| 108 | The | ||
| 109 | .Ar value | ||
| 110 | string can be a short name, a long name, or numerical format. | ||
| 111 | .It Cm UTCTIME , UTC | ||
| 112 | Encodes an ASN1 UTCTime structure. | ||
| 113 | The value should be in the format | ||
| 114 | .Ar YYMMDDHHMMSSZ . | ||
| 115 | .It Cm GENERALIZEDTIME , GENTIME | ||
| 116 | Encodes an ASN1 GeneralizedTime structure. | ||
| 117 | The value should be in the format | ||
| 118 | .Ar YYYYMMDDHHMMSSZ . | ||
| 119 | .It Cm OCTETSTRING , OCT | ||
| 120 | Encodes an ASN1 OCTET STRING. | ||
| 121 | .Ar value | ||
| 122 | represents the contents of this structure. | ||
| 123 | The format strings | ||
| 124 | .Cm ASCII | ||
| 125 | and | ||
| 126 | .Cm HEX | ||
| 127 | can be used to specify the format of | ||
| 128 | .Ar value . | ||
| 129 | .It Cm BITSTRING , BITSTR | ||
| 130 | Encodes an ASN1 BIT STRING. | ||
| 131 | .Ar value | ||
| 132 | represents the contents of this structure. | ||
| 133 | The format strings | ||
| 134 | .Cm ASCII , | ||
| 135 | .Cm HEX , | ||
| 136 | and | ||
| 137 | .Cm BITLIST | ||
| 138 | can be used to specify the format of | ||
| 139 | .Ar value . | ||
| 140 | .Pp | ||
| 141 | If the format is anything other than | ||
| 142 | .Cm BITLIST , | ||
| 143 | the number of unused bits is set to zero. | ||
| 144 | .It Xo | ||
| 145 | .Cm BMPSTRING , BMP , | ||
| 146 | .Cm GeneralString , | ||
| 147 | .Cm IA5STRING , IA5 , | ||
| 148 | .Cm NUMERICSTRING , NUMERIC , | ||
| 149 | .Cm PRINTABLESTRING , PRINTABLE , | ||
| 150 | .Cm T61STRING , T61 , | ||
| 151 | .Cm TELETEXSTRING , | ||
| 152 | .Cm UNIVERSALSTRING , UNIV , | ||
| 153 | .Cm UTF8String , UTF8 , | ||
| 154 | .Cm VISIBLESTRING , VISIBLE | ||
| 155 | .Xc | ||
| 156 | These encode the corresponding string types. | ||
| 157 | .Ar value | ||
| 158 | represents the contents of this structure. | ||
| 159 | The format can be | ||
| 160 | .Cm ASCII | ||
| 161 | or | ||
| 162 | .Cm UTF8 . | ||
| 163 | .It Cm SEQUENCE , SEQ , SET | ||
| 164 | Formats the result as an ASN1 SEQUENCE or SET type. | ||
| 165 | .Ar value | ||
| 166 | should be a section name which will contain the contents. | ||
| 167 | The field names in the section are ignored | ||
| 168 | and the values are in the generated string format. | ||
| 169 | If | ||
| 170 | .Ar value | ||
| 171 | is absent, then an empty SEQUENCE will be encoded. | ||
| 172 | .El | ||
| 173 | .Ss Modifiers | ||
| 174 | Modifiers affect the following structure. | ||
| 175 | They can be used to add EXPLICIT or IMPLICIT tagging, add wrappers, | ||
| 176 | or to change the string format of the final type and value. | ||
| 177 | The supported formats are: | ||
| 178 | .Bl -tag -width Ds | ||
| 179 | .It Cm EXPLICIT , EXP | ||
| 180 | Add an explicit tag to the following structure. | ||
| 181 | This string should be followed by a colon | ||
| 182 | and the tag value to use as a decimal value. | ||
| 183 | .Pp | ||
| 184 | By following the number with | ||
| 185 | .Cm U , | ||
| 186 | .Cm A , | ||
| 187 | .Cm P | ||
| 188 | or | ||
| 189 | .Cm C , | ||
| 190 | UNIVERSAL, APPLICATION, PRIVATE or CONTEXT SPECIFIC tagging can be used. | ||
| 191 | The default is CONTEXT SPECIFIC. | ||
| 192 | .It Cm IMPLICIT , IMP | ||
| 193 | This is the same as | ||
| 194 | .Cm EXPLICIT | ||
| 195 | except IMPLICIT tagging is used instead. | ||
| 196 | .It Cm OCTWRAP , SEQWRAP , SETWRAP , BITWRAP | ||
| 197 | The following structure is surrounded by | ||
| 198 | an OCTET STRING, a SEQUENCE, a SET, or a BIT STRING, respectively. | ||
| 199 | For a BIT STRING the number of unused bits is set to zero. | ||
| 200 | .It Cm FORMAT | ||
| 201 | This specifies the format of the ultimate value. | ||
| 202 | It should be followed by a colon and one of the strings | ||
| 203 | .Cm ASCII , | ||
| 204 | .Cm UTF8 , | ||
| 205 | .Cm HEX , | ||
| 206 | or | ||
| 207 | .Cm BITLIST . | ||
| 208 | .Pp | ||
| 209 | If no format specifier is included, then | ||
| 210 | .Cm ASCII | ||
| 211 | is used. | ||
| 212 | If | ||
| 213 | .Cm UTF8 | ||
| 214 | is specified, then the | ||
| 215 | .Ar value | ||
| 216 | string must be a valid UTF8 string. | ||
| 217 | For | ||
| 218 | .Cm HEX , | ||
| 219 | the output must be a set of hex digits. | ||
| 220 | .Cm BITLIST | ||
| 221 | (which is only valid for a BIT STRING) is a comma separated list | ||
| 222 | of the indices of the set bits, all other bits are zero. | ||
| 223 | .El | ||
| 224 | .Sh RETURN VALUES | ||
| 225 | .Fn ASN1_generate_nconf | ||
| 226 | and | ||
| 227 | .Fn ASN1_generate_v3 | ||
| 228 | return the encoded data as an | ||
| 229 | .Vt ASN1_TYPE | ||
| 230 | structure or | ||
| 231 | .Dv NULL | ||
| 232 | if an error occurred. | ||
| 233 | .Pp | ||
| 234 | The error codes can be obtained by | ||
| 235 | .Xr ERR_get_error 3 . | ||
| 236 | .Sh EXAMPLES | ||
| 237 | A simple IA5String: | ||
| 238 | .Pp | ||
| 239 | .Dl IA5STRING:Hello World | ||
| 240 | .Pp | ||
| 241 | An IA5String explicitly tagged: | ||
| 242 | .Pp | ||
| 243 | .Dl EXPLICIT:0,IA5STRING:Hello World | ||
| 244 | .Pp | ||
| 245 | An IA5String explicitly tagged using APPLICATION tagging: | ||
| 246 | .Pp | ||
| 247 | .Dl EXPLICIT:0A,IA5STRING:Hello World | ||
| 248 | .Pp | ||
| 249 | A BITSTRING with bits 1 and 5 set and all others zero: | ||
| 250 | .Pp | ||
| 251 | .Dl FORMAT:BITLIST,BITSTRING:1,5 | ||
| 252 | .Pp | ||
| 253 | A more complex example using a config file to produce a | ||
| 254 | SEQUENCE consiting of a BOOL an OID and a UTF8String: | ||
| 255 | .Bd -literal -offset indent | ||
| 256 | asn1 = SEQUENCE:seq_section | ||
| 257 | |||
| 258 | [seq_section] | ||
| 259 | |||
| 260 | field1 = BOOLEAN:TRUE | ||
| 261 | field2 = OID:commonName | ||
| 262 | field3 = UTF8:Third field | ||
| 263 | .Ed | ||
| 264 | .Pp | ||
| 265 | This example produces an RSAPrivateKey structure. | ||
| 266 | This is the key contained in the file | ||
| 267 | .Pa client.pem | ||
| 268 | in all OpenSSL distributions. | ||
| 269 | Note that the field names such as | ||
| 270 | .Qq coeff | ||
| 271 | are ignored and are present just for clarity. | ||
| 272 | .Bd -literal -offset 2n | ||
| 273 | asn1=SEQUENCE:private_key | ||
| 274 | [private_key] | ||
| 275 | version=INTEGER:0 | ||
| 276 | |||
| 277 | n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\e | ||
| 278 | D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9 | ||
| 279 | |||
| 280 | e=INTEGER:0x010001 | ||
| 281 | |||
| 282 | d=INTEGER:0x6F05EAD2F27FFAEC84BEC360C4B928FD5F3A9865D0FCAAD291E2A52F4A\e | ||
| 283 | F810DC6373278C006A0ABBA27DC8C63BF97F7E666E27C5284D7D3B1FFFE16B7A87B51D | ||
| 284 | |||
| 285 | p=INTEGER:0xF3929B9435608F8A22C208D86795271D54EBDFB09DDEF539AB083DA912\e | ||
| 286 | D4BD57 | ||
| 287 | |||
| 288 | q=INTEGER:0xC50016F89DFF2561347ED1186A46E150E28BF2D0F539A1594BBD7FE467\e | ||
| 289 | 46EC4F | ||
| 290 | |||
| 291 | exp1=INTEGER:0x9E7D4326C924AFC1DEA40B45650134966D6F9DFA3A7F9D698CD4ABEA\e | ||
| 292 | 9C0A39B9 | ||
| 293 | |||
| 294 | exp2=INTEGER:0xBA84003BB95355AFB7C50DF140C60513D0BA51D637272E355E397779\e | ||
| 295 | E7B2458F | ||
| 296 | |||
| 297 | coeff=INTEGER:0x30B9E4F2AFA5AC679F920FC83F1F2DF1BAF1779CF989447FABC2F5\e | ||
| 298 | 628657053A | ||
| 299 | .Ed | ||
| 300 | .Pp | ||
| 301 | This example is the corresponding public key in a SubjectPublicKeyInfo | ||
| 302 | structure: | ||
| 303 | .Bd -literal -offset 2n | ||
| 304 | # Start with a SEQUENCE | ||
| 305 | asn1=SEQUENCE:pubkeyinfo | ||
| 306 | |||
| 307 | # pubkeyinfo contains an algorithm identifier and the public key | ||
| 308 | # wrapped in a BIT STRING | ||
| 309 | [pubkeyinfo] | ||
| 310 | algorithm=SEQUENCE:rsa_alg | ||
| 311 | pubkey=BITWRAP,SEQUENCE:rsapubkey | ||
| 312 | |||
| 313 | # algorithm ID for RSA is just an OID and a NULL | ||
| 314 | [rsa_alg] | ||
| 315 | algorithm=OID:rsaEncryption | ||
| 316 | parameter=NULL | ||
| 317 | |||
| 318 | # Actual public key: modulus and exponent | ||
| 319 | [rsapubkey] | ||
| 320 | n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\e | ||
| 321 | D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9 | ||
| 322 | |||
| 323 | e=INTEGER:0x010001 | ||
| 324 | .Ed | ||
| 325 | .Sh SEE ALSO | ||
| 326 | .Xr ERR_get_error 3 | ||
| 327 | .Sh HISTORY | ||
| 328 | .Fn ASN1_generate_nconf | ||
| 329 | and | ||
| 330 | .Fn ASN1_generate_v3 | ||
| 331 | were added to OpenSSL 0.9.8. | ||
diff --git a/src/lib/libcrypto/man/Makefile b/src/lib/libcrypto/man/Makefile index c6dc286934..5edbf7e394 100644 --- a/src/lib/libcrypto/man/Makefile +++ b/src/lib/libcrypto/man/Makefile | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # $OpenBSD: Makefile,v 1.15 2015/01/16 01:58:18 schwarze Exp $ | 1 | # $OpenBSD: Makefile,v 1.16 2015/02/14 13:54:59 schwarze Exp $ |
| 2 | 2 | ||
| 3 | .include <bsd.own.mk> # for NOMAN | 3 | .include <bsd.own.mk> # for NOMAN |
| 4 | 4 | ||
| @@ -10,7 +10,9 @@ MAN= \ | |||
| 10 | ASN1_STRING_length.3 \ | 10 | ASN1_STRING_length.3 \ |
| 11 | ASN1_STRING_new.3 \ | 11 | ASN1_STRING_new.3 \ |
| 12 | ASN1_STRING_print_ex.3 \ | 12 | ASN1_STRING_print_ex.3 \ |
| 13 | ASN1_generate_nconf.3 \ | 13 | ASN1_generate_nconf.3 |
| 14 | |||
| 15 | GENMAN= \ | ||
| 14 | BF_set_key.3 \ | 16 | BF_set_key.3 \ |
| 15 | BIO.3 \ | 17 | BIO.3 \ |
| 16 | BIO_ctrl.3 \ | 18 | BIO_ctrl.3 \ |
| @@ -195,6 +197,8 @@ MAN= \ | |||
| 195 | ui_compat.3 \ | 197 | ui_compat.3 \ |
| 196 | x509.3 \ | 198 | x509.3 \ |
| 197 | 199 | ||
| 200 | MAN+= ${GENMAN} | ||
| 201 | |||
| 198 | #MAN+= BIO_new_CMS.3 \ | 202 | #MAN+= BIO_new_CMS.3 \ |
| 199 | # CMS_add0_cert.3 \ | 203 | # CMS_add0_cert.3 \ |
| 200 | # CMS_add1_recipient_cert.3 \ | 204 | # CMS_add1_recipient_cert.3 \ |
| @@ -1146,4 +1150,4 @@ maninstall: | |||
| 1146 | .include <bsd.subdir.mk> | 1150 | .include <bsd.subdir.mk> |
| 1147 | 1151 | ||
| 1148 | clean cleandir: | 1152 | clean cleandir: |
| 1149 | rm -f ${MAN} | 1153 | rm -f ${GENMAN} |
diff --git a/src/lib/libssl/src/doc/crypto/ASN1_OBJECT_new.pod b/src/lib/libssl/src/doc/crypto/ASN1_OBJECT_new.pod deleted file mode 100644 index 1c43494c7d..0000000000 --- a/src/lib/libssl/src/doc/crypto/ASN1_OBJECT_new.pod +++ /dev/null | |||
| @@ -1,46 +0,0 @@ | |||
| 1 | =pod | ||
| 2 | |||
| 3 | =head1 NAME | ||
| 4 | |||
| 5 | ASN1_OBJECT_new, ASN1_OBJECT_free - object allocation functions | ||
| 6 | |||
| 7 | =head1 SYNOPSIS | ||
| 8 | |||
| 9 | #include <openssl/asn1.h> | ||
| 10 | |||
| 11 | ASN1_OBJECT *ASN1_OBJECT_new(void); | ||
| 12 | void ASN1_OBJECT_free(ASN1_OBJECT *a); | ||
| 13 | |||
| 14 | =head1 DESCRIPTION | ||
| 15 | |||
| 16 | The ASN1_OBJECT allocation routines, allocate and free an | ||
| 17 | ASN1_OBJECT structure, which represents an ASN1 OBJECT IDENTIFIER. | ||
| 18 | |||
| 19 | ASN1_OBJECT_new() allocates and initializes a ASN1_OBJECT structure. | ||
| 20 | |||
| 21 | ASN1_OBJECT_free() frees up the B<ASN1_OBJECT> structure B<a>. | ||
| 22 | |||
| 23 | =head1 NOTES | ||
| 24 | |||
| 25 | Although ASN1_OBJECT_new() allocates a new ASN1_OBJECT structure it | ||
| 26 | is almost never used in applications. The ASN1 object utility functions | ||
| 27 | such as OBJ_nid2obj() are used instead. | ||
| 28 | |||
| 29 | =head1 RETURN VALUES | ||
| 30 | |||
| 31 | If the allocation fails, ASN1_OBJECT_new() returns B<NULL> and sets an error | ||
| 32 | code that can be obtained by L<ERR_get_error(3)|ERR_get_error(3)>. | ||
| 33 | Otherwise it returns a pointer to the newly allocated structure. | ||
| 34 | |||
| 35 | ASN1_OBJECT_free() returns no value. | ||
| 36 | |||
| 37 | =head1 SEE ALSO | ||
| 38 | |||
| 39 | L<ERR_get_error(3)|ERR_get_error(3)>, L<d2i_ASN1_OBJECT(3)|d2i_ASN1_OBJECT(3)> | ||
| 40 | |||
| 41 | =head1 HISTORY | ||
| 42 | |||
| 43 | ASN1_OBJECT_new() and ASN1_OBJECT_free() are available in all versions of | ||
| 44 | SSLeay and OpenSSL. | ||
| 45 | |||
| 46 | =cut | ||
diff --git a/src/lib/libssl/src/doc/crypto/ASN1_STRING_length.pod b/src/lib/libssl/src/doc/crypto/ASN1_STRING_length.pod deleted file mode 100644 index f9a47a47dc..0000000000 --- a/src/lib/libssl/src/doc/crypto/ASN1_STRING_length.pod +++ /dev/null | |||
| @@ -1,83 +0,0 @@ | |||
| 1 | =pod | ||
| 2 | |||
| 3 | =head1 NAME | ||
| 4 | |||
| 5 | ASN1_STRING_dup, ASN1_STRING_cmp, ASN1_STRING_set, ASN1_STRING_length, | ||
| 6 | ASN1_STRING_length_set, ASN1_STRING_type, ASN1_STRING_data, ASN1_STRING_to_UTF8 - | ||
| 7 | ASN1_STRING utility functions | ||
| 8 | |||
| 9 | =head1 SYNOPSIS | ||
| 10 | |||
| 11 | #include <openssl/asn1.h> | ||
| 12 | |||
| 13 | int ASN1_STRING_length(ASN1_STRING *x); | ||
| 14 | unsigned char * ASN1_STRING_data(ASN1_STRING *x); | ||
| 15 | |||
| 16 | ASN1_STRING * ASN1_STRING_dup(ASN1_STRING *a); | ||
| 17 | |||
| 18 | int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b); | ||
| 19 | |||
| 20 | int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); | ||
| 21 | |||
| 22 | int ASN1_STRING_type(ASN1_STRING *x); | ||
| 23 | |||
| 24 | int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); | ||
| 25 | |||
| 26 | =head1 DESCRIPTION | ||
| 27 | |||
| 28 | These functions allow an B<ASN1_STRING> structure to be manipulated. | ||
| 29 | |||
| 30 | ASN1_STRING_length() returns the length of the content of B<x>. | ||
| 31 | |||
| 32 | ASN1_STRING_data() returns an internal pointer to the data of B<x>. | ||
| 33 | Since this is an internal pointer it should B<not> be freed or | ||
| 34 | modified in any way. | ||
| 35 | |||
| 36 | ASN1_STRING_dup() returns a copy of the structure B<a>. | ||
| 37 | |||
| 38 | ASN1_STRING_cmp() compares B<a> and B<b> returning 0 if the two | ||
| 39 | are identical. The string types and content are compared. | ||
| 40 | |||
| 41 | ASN1_STRING_set() sets the data of string B<str> to the buffer | ||
| 42 | B<data> or length B<len>. The supplied data is copied. If B<len> | ||
| 43 | is -1 then the length is determined by strlen(data). | ||
| 44 | |||
| 45 | ASN1_STRING_type() returns the type of B<x>, using standard constants | ||
| 46 | such as B<V_ASN1_OCTET_STRING>. | ||
| 47 | |||
| 48 | ASN1_STRING_to_UTF8() converts the string B<in> to UTF8 format, the | ||
| 49 | converted data is allocated in a buffer in B<*out>. The length of | ||
| 50 | B<out> is returned or a negative error code. The buffer B<*out> | ||
| 51 | should be free using free(). | ||
| 52 | |||
| 53 | =head1 NOTES | ||
| 54 | |||
| 55 | Almost all ASN1 types in OpenSSL are represented as an B<ASN1_STRING> | ||
| 56 | structure. Other types such as B<ASN1_OCTET_STRING> are simply typedefed | ||
| 57 | to B<ASN1_STRING> and the functions call the B<ASN1_STRING> equivalents. | ||
| 58 | B<ASN1_STRING> is also used for some B<CHOICE> types which consist | ||
| 59 | entirely of primitive string types such as B<DirectoryString> and | ||
| 60 | B<Time>. | ||
| 61 | |||
| 62 | These functions should B<not> be used to examine or modify B<ASN1_INTEGER> | ||
| 63 | or B<ASN1_ENUMERATED> types: the relevant B<INTEGER> or B<ENUMERATED> | ||
| 64 | utility functions should be used instead. | ||
| 65 | |||
| 66 | In general it cannot be assumed that the data returned by ASN1_STRING_data() | ||
| 67 | is null terminated or does not contain embedded nulls. The actual format | ||
| 68 | of the data will depend on the actual string type itself: for example | ||
| 69 | for and IA5String the data will be ASCII, for a BMPString two bytes per | ||
| 70 | character in big endian format, UTF8String will be in UTF8 format. | ||
| 71 | |||
| 72 | Similar care should be take to ensure the data is in the correct format | ||
| 73 | when calling ASN1_STRING_set(). | ||
| 74 | |||
| 75 | =head1 RETURN VALUES | ||
| 76 | |||
| 77 | =head1 SEE ALSO | ||
| 78 | |||
| 79 | L<ERR_get_error(3)|ERR_get_error(3)> | ||
| 80 | |||
| 81 | =head1 HISTORY | ||
| 82 | |||
| 83 | =cut | ||
diff --git a/src/lib/libssl/src/doc/crypto/ASN1_STRING_new.pod b/src/lib/libssl/src/doc/crypto/ASN1_STRING_new.pod deleted file mode 100644 index b5e72a8347..0000000000 --- a/src/lib/libssl/src/doc/crypto/ASN1_STRING_new.pod +++ /dev/null | |||
| @@ -1,42 +0,0 @@ | |||
| 1 | =pod | ||
| 2 | |||
| 3 | =head1 NAME | ||
| 4 | |||
| 5 | ASN1_STRING_new, ASN1_STRING_type_new, ASN1_STRING_free - | ||
| 6 | ASN1_STRING allocation functions | ||
| 7 | |||
| 8 | =head1 SYNOPSIS | ||
| 9 | |||
| 10 | #include <openssl/asn1.h> | ||
| 11 | |||
| 12 | ASN1_STRING * ASN1_STRING_new(void); | ||
| 13 | ASN1_STRING * ASN1_STRING_type_new(int type); | ||
| 14 | void ASN1_STRING_free(ASN1_STRING *a); | ||
| 15 | |||
| 16 | =head1 DESCRIPTION | ||
| 17 | |||
| 18 | ASN1_STRING_new() returns an allocated B<ASN1_STRING> structure. Its type | ||
| 19 | is undefined. | ||
| 20 | |||
| 21 | ASN1_STRING_type_new() returns an allocated B<ASN1_STRING> structure of | ||
| 22 | type B<type>. | ||
| 23 | |||
| 24 | ASN1_STRING_free() frees up B<a>. | ||
| 25 | |||
| 26 | =head1 NOTES | ||
| 27 | |||
| 28 | Other string types call the B<ASN1_STRING> functions. For example | ||
| 29 | ASN1_OCTET_STRING_new() calls ASN1_STRING_type(V_ASN1_OCTET_STRING). | ||
| 30 | |||
| 31 | =head1 RETURN VALUES | ||
| 32 | |||
| 33 | ASN1_STRING_new() and ASN1_STRING_type_new() return a valid | ||
| 34 | ASN1_STRING structure or B<NULL> if an error occurred. | ||
| 35 | |||
| 36 | ASN1_STRING_free() does not return a value. | ||
| 37 | |||
| 38 | =head1 SEE ALSO | ||
| 39 | |||
| 40 | L<ERR_get_error(3)|ERR_get_error(3)> | ||
| 41 | |||
| 42 | =cut | ||
diff --git a/src/lib/libssl/src/doc/crypto/ASN1_STRING_print_ex.pod b/src/lib/libssl/src/doc/crypto/ASN1_STRING_print_ex.pod deleted file mode 100644 index a93047a040..0000000000 --- a/src/lib/libssl/src/doc/crypto/ASN1_STRING_print_ex.pod +++ /dev/null | |||
| @@ -1,95 +0,0 @@ | |||
| 1 | =pod | ||
| 2 | |||
| 3 | =head1 NAME | ||
| 4 | |||
| 5 | ASN1_STRING_print_ex, ASN1_STRING_print_ex_fp, ASN1_STRING_print - ASN1_STRING output routines. | ||
| 6 | |||
| 7 | =head1 SYNOPSIS | ||
| 8 | |||
| 9 | #include <openssl/asn1.h> | ||
| 10 | |||
| 11 | int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); | ||
| 12 | int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); | ||
| 13 | int ASN1_STRING_print(BIO *out, ASN1_STRING *str); | ||
| 14 | |||
| 15 | |||
| 16 | =head1 DESCRIPTION | ||
| 17 | |||
| 18 | These functions output an B<ASN1_STRING> structure. B<ASN1_STRING> is used to | ||
| 19 | represent all the ASN1 string types. | ||
| 20 | |||
| 21 | ASN1_STRING_print_ex() outputs B<str> to B<out>, the format is determined by | ||
| 22 | the options B<flags>. ASN1_STRING_print_ex_fp() is identical except it outputs | ||
| 23 | to B<fp> instead. | ||
| 24 | |||
| 25 | ASN1_STRING_print() prints B<str> to B<out> but using a different format to | ||
| 26 | ASN1_STRING_print_ex(). It replaces unprintable characters (other than CR, LF) | ||
| 27 | with '.'. | ||
| 28 | |||
| 29 | =head1 NOTES | ||
| 30 | |||
| 31 | ASN1_STRING_print() is a legacy function which should be avoided in new | ||
| 32 | applications. | ||
| 33 | |||
| 34 | Although there are a large number of options frequently B<ASN1_STRFLGS_RFC2253> | ||
| 35 | is suitable, or on UTF8 terminals B<ASN1_STRFLGS_RFC2253 & | ||
| 36 | ~ASN1_STRFLGS_ESC_MSB>. | ||
| 37 | |||
| 38 | The complete set of supported options for B<flags> is listed below. | ||
| 39 | |||
| 40 | Various characters can be escaped. If B<ASN1_STRFLGS_ESC_2253> is set the | ||
| 41 | characters determined by RFC2253 are escaped. If B<ASN1_STRFLGS_ESC_CTRL> is | ||
| 42 | set control characters are escaped. If B<ASN1_STRFLGS_ESC_MSB> is set | ||
| 43 | characters with the MSB set are escaped: this option should B<not> be used if | ||
| 44 | the terminal correctly interprets UTF8 sequences. | ||
| 45 | |||
| 46 | Escaping takes several forms. | ||
| 47 | |||
| 48 | If the character being escaped is a 16 bit character then the form "\UXXXX" is | ||
| 49 | used using exactly four characters for the hex representation. If it is 32 bits | ||
| 50 | then "\WXXXXXXXX" is used using eight characters of its hex representation. | ||
| 51 | These forms will only be used if UTF8 conversion is not set (see below). | ||
| 52 | |||
| 53 | Printable characters are normally escaped using the backslash '\' character. If | ||
| 54 | B<ASN1_STRFLGS_ESC_QUOTE> is set then the whole string is instead surrounded by | ||
| 55 | double quote characters: this is arguably more readable than the backslash | ||
| 56 | notation. Other characters use the "\XX" using exactly two characters of the hex | ||
| 57 | representation. | ||
| 58 | |||
| 59 | If B<ASN1_STRFLGS_UTF8_CONVERT> is set then characters are converted to UTF8 | ||
| 60 | format first. If the terminal supports the display of UTF8 sequences then this | ||
| 61 | option will correctly display multi byte characters. | ||
| 62 | |||
| 63 | If B<ASN1_STRFLGS_IGNORE_TYPE> is set then the string type is not interpreted | ||
| 64 | at all: everything is assumed to be one byte per character. This is primarily | ||
| 65 | for debugging purposes and can result in confusing output in multi character | ||
| 66 | strings. | ||
| 67 | |||
| 68 | If B<ASN1_STRFLGS_SHOW_TYPE> is set then the string type itself is printed out | ||
| 69 | before its value (for example "BMPSTRING"), this actually uses ASN1_tag2str(). | ||
| 70 | |||
| 71 | The content of a string instead of being interpreted can be "dumped": this just | ||
| 72 | outputs the value of the string using the form #XXXX using hex format for each | ||
| 73 | octet. | ||
| 74 | |||
| 75 | If B<ASN1_STRFLGS_DUMP_ALL> is set then any type is dumped. | ||
| 76 | |||
| 77 | Normally non character string types (such as OCTET STRING) are assumed to be | ||
| 78 | one byte per character, if B<ASN1_STRFLGS_DUMP_UNKNOWN> is set then they will | ||
| 79 | be dumped instead. | ||
| 80 | |||
| 81 | When a type is dumped normally just the content octets are printed, if | ||
| 82 | B<ASN1_STRFLGS_DUMP_DER> is set then the complete encoding is dumped | ||
| 83 | instead (including tag and length octets). | ||
| 84 | |||
| 85 | B<ASN1_STRFLGS_RFC2253> includes all the flags required by RFC2253. It is | ||
| 86 | equivalent to: | ||
| 87 | ASN1_STRFLGS_ESC_2253 | ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB | | ||
| 88 | ASN1_STRFLGS_UTF8_CONVERT | ASN1_STRFLGS_DUMP_UNKNOWN ASN1_STRFLGS_DUMP_DER | ||
| 89 | |||
| 90 | =head1 SEE ALSO | ||
| 91 | |||
| 92 | L<X509_NAME_print_ex(3)|X509_NAME_print_ex(3)>, | ||
| 93 | L<ASN1_tag2str(3)|ASN1_tag2str(3)> | ||
| 94 | |||
| 95 | =cut | ||
diff --git a/src/lib/libssl/src/doc/crypto/ASN1_generate_nconf.pod b/src/lib/libssl/src/doc/crypto/ASN1_generate_nconf.pod deleted file mode 100644 index 4b8a937a66..0000000000 --- a/src/lib/libssl/src/doc/crypto/ASN1_generate_nconf.pod +++ /dev/null | |||
| @@ -1,265 +0,0 @@ | |||
| 1 | =pod | ||
| 2 | |||
| 3 | =head1 NAME | ||
| 4 | |||
| 5 | ASN1_generate_nconf, ASN1_generate_v3 - ASN1 generation functions | ||
| 6 | |||
| 7 | =head1 SYNOPSIS | ||
| 8 | |||
| 9 | #include <openssl/asn1.h> | ||
| 10 | |||
| 11 | ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); | ||
| 12 | ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); | ||
| 13 | |||
| 14 | =head1 DESCRIPTION | ||
| 15 | |||
| 16 | These functions generate the ASN1 encoding of a string | ||
| 17 | in an B<ASN1_TYPE> structure. | ||
| 18 | |||
| 19 | B<str> contains the string to encode B<nconf> or B<cnf> contains | ||
| 20 | the optional configuration information where additional strings | ||
| 21 | will be read from. B<nconf> will typically come from a config | ||
| 22 | file wherease B<cnf> is obtained from an B<X509V3_CTX> structure | ||
| 23 | which will typically be used by X509 v3 certificate extension | ||
| 24 | functions. B<cnf> or B<nconf> can be set to B<NULL> if no additional | ||
| 25 | configuration will be used. | ||
| 26 | |||
| 27 | =head1 GENERATION STRING FORMAT | ||
| 28 | |||
| 29 | The actual data encoded is determined by the string B<str> and | ||
| 30 | the configuration information. The general format of the string | ||
| 31 | is: | ||
| 32 | |||
| 33 | =over 2 | ||
| 34 | |||
| 35 | =item B<[modifier,]type[:value]> | ||
| 36 | |||
| 37 | =back | ||
| 38 | |||
| 39 | That is zero or more comma separated modifiers followed by a type | ||
| 40 | followed by an optional colon and a value. The formats of B<type>, | ||
| 41 | B<value> and B<modifier> are explained below. | ||
| 42 | |||
| 43 | =head2 SUPPORTED TYPES | ||
| 44 | |||
| 45 | The supported types are listed below. Unless otherwise specified | ||
| 46 | only the B<ASCII> format is permissible. | ||
| 47 | |||
| 48 | =over 2 | ||
| 49 | |||
| 50 | =item B<BOOLEAN>, B<BOOL> | ||
| 51 | |||
| 52 | This encodes a boolean type. The B<value> string is mandatory and | ||
| 53 | should be B<TRUE> or B<FALSE>. Additionally B<TRUE>, B<true>, B<Y>, | ||
| 54 | B<y>, B<YES>, B<yes>, B<FALSE>, B<false>, B<N>, B<n>, B<NO> and B<no> | ||
| 55 | are acceptable. | ||
| 56 | |||
| 57 | =item B<NULL> | ||
| 58 | |||
| 59 | Encode the B<NULL> type, the B<value> string must not be present. | ||
| 60 | |||
| 61 | =item B<INTEGER>, B<INT> | ||
| 62 | |||
| 63 | Encodes an ASN1 B<INTEGER> type. The B<value> string represents | ||
| 64 | the value of the integer, it can be prefaced by a minus sign and | ||
| 65 | is normally interpreted as a decimal value unless the prefix B<0x> | ||
| 66 | is included. | ||
| 67 | |||
| 68 | =item B<ENUMERATED>, B<ENUM> | ||
| 69 | |||
| 70 | Encodes the ASN1 B<ENUMERATED> type, it is otherwise identical to | ||
| 71 | B<INTEGER>. | ||
| 72 | |||
| 73 | =item B<OBJECT>, B<OID> | ||
| 74 | |||
| 75 | Encodes an ASN1 B<OBJECT IDENTIFIER>, the B<value> string can be | ||
| 76 | a short name, a long name or numerical format. | ||
| 77 | |||
| 78 | =item B<UTCTIME>, B<UTC> | ||
| 79 | |||
| 80 | Encodes an ASN1 B<UTCTime> structure, the value should be in | ||
| 81 | the format B<YYMMDDHHMMSSZ>. | ||
| 82 | |||
| 83 | =item B<GENERALIZEDTIME>, B<GENTIME> | ||
| 84 | |||
| 85 | Encodes an ASN1 B<GeneralizedTime> structure, the value should be in | ||
| 86 | the format B<YYYYMMDDHHMMSSZ>. | ||
| 87 | |||
| 88 | =item B<OCTETSTRING>, B<OCT> | ||
| 89 | |||
| 90 | Encodes an ASN1 B<OCTET STRING>. B<value> represents the contents | ||
| 91 | of this structure, the format strings B<ASCII> and B<HEX> can be | ||
| 92 | used to specify the format of B<value>. | ||
| 93 | |||
| 94 | =item B<BITSTRING>, B<BITSTR> | ||
| 95 | |||
| 96 | Encodes an ASN1 B<BIT STRING>. B<value> represents the contents | ||
| 97 | of this structure, the format strings B<ASCII>, B<HEX> and B<BITLIST> | ||
| 98 | can be used to specify the format of B<value>. | ||
| 99 | |||
| 100 | If the format is anything other than B<BITLIST> the number of unused | ||
| 101 | bits is set to zero. | ||
| 102 | |||
| 103 | =item B<UNIVERSALSTRING>, B<UNIV>, B<IA5>, B<IA5STRING>, B<UTF8>, | ||
| 104 | B<UTF8String>, B<BMP>, B<BMPSTRING>, B<VISIBLESTRING>, | ||
| 105 | B<VISIBLE>, B<PRINTABLESTRING>, B<PRINTABLE>, B<T61>, | ||
| 106 | B<T61STRING>, B<TELETEXSTRING>, B<GeneralString>, B<NUMERICSTRING>, | ||
| 107 | B<NUMERIC> | ||
| 108 | |||
| 109 | These encode the corresponding string types. B<value> represents the | ||
| 110 | contents of this structure. The format can be B<ASCII> or B<UTF8>. | ||
| 111 | |||
| 112 | =item B<SEQUENCE>, B<SEQ>, B<SET> | ||
| 113 | |||
| 114 | Formats the result as an ASN1 B<SEQUENCE> or B<SET> type. B<value> | ||
| 115 | should be a section name which will contain the contents. The | ||
| 116 | field names in the section are ignored and the values are in the | ||
| 117 | generated string format. If B<value> is absent then an empty SEQUENCE | ||
| 118 | will be encoded. | ||
| 119 | |||
| 120 | =back | ||
| 121 | |||
| 122 | =head2 MODIFIERS | ||
| 123 | |||
| 124 | Modifiers affect the following structure, they can be used to | ||
| 125 | add EXPLICIT or IMPLICIT tagging, add wrappers or to change | ||
| 126 | the string format of the final type and value. The supported | ||
| 127 | formats are documented below. | ||
| 128 | |||
| 129 | =over 2 | ||
| 130 | |||
| 131 | =item B<EXPLICIT>, B<EXP> | ||
| 132 | |||
| 133 | Add an explicit tag to the following structure. This string | ||
| 134 | should be followed by a colon and the tag value to use as a | ||
| 135 | decimal value. | ||
| 136 | |||
| 137 | By following the number with B<U>, B<A>, B<P> or B<C> UNIVERSAL, | ||
| 138 | APPLICATION, PRIVATE or CONTEXT SPECIFIC tagging can be used, | ||
| 139 | the default is CONTEXT SPECIFIC. | ||
| 140 | |||
| 141 | =item B<IMPLICIT>, B<IMP> | ||
| 142 | |||
| 143 | This is the same as B<EXPLICIT> except IMPLICIT tagging is used | ||
| 144 | instead. | ||
| 145 | |||
| 146 | =item B<OCTWRAP>, B<SEQWRAP>, B<SETWRAP>, B<BITWRAP> | ||
| 147 | |||
| 148 | The following structure is surrounded by an OCTET STRING, a SEQUENCE, | ||
| 149 | a SET or a BIT STRING respectively. For a BIT STRING the number of unused | ||
| 150 | bits is set to zero. | ||
| 151 | |||
| 152 | =item B<FORMAT> | ||
| 153 | |||
| 154 | This specifies the format of the ultimate value. It should be followed | ||
| 155 | by a colon and one of the strings B<ASCII>, B<UTF8>, B<HEX> or B<BITLIST>. | ||
| 156 | |||
| 157 | If no format specifier is included then B<ASCII> is used. If B<UTF8> is | ||
| 158 | specified then the value string must be a valid B<UTF8> string. For B<HEX> the | ||
| 159 | output must be a set of hex digits. B<BITLIST> (which is only valid for a BIT | ||
| 160 | STRING) is a comma separated list of the indices of the set bits, all other | ||
| 161 | bits are zero. | ||
| 162 | |||
| 163 | =back | ||
| 164 | |||
| 165 | =head1 EXAMPLES | ||
| 166 | |||
| 167 | A simple IA5String: | ||
| 168 | |||
| 169 | IA5STRING:Hello World | ||
| 170 | |||
| 171 | An IA5String explicitly tagged: | ||
| 172 | |||
| 173 | EXPLICIT:0,IA5STRING:Hello World | ||
| 174 | |||
| 175 | An IA5String explicitly tagged using APPLICATION tagging: | ||
| 176 | |||
| 177 | EXPLICIT:0A,IA5STRING:Hello World | ||
| 178 | |||
| 179 | A BITSTRING with bits 1 and 5 set and all others zero: | ||
| 180 | |||
| 181 | FORMAT:BITLIST,BITSTRING:1,5 | ||
| 182 | |||
| 183 | A more complex example using a config file to produce a | ||
| 184 | SEQUENCE consiting of a BOOL an OID and a UTF8String: | ||
| 185 | |||
| 186 | asn1 = SEQUENCE:seq_section | ||
| 187 | |||
| 188 | [seq_section] | ||
| 189 | |||
| 190 | field1 = BOOLEAN:TRUE | ||
| 191 | field2 = OID:commonName | ||
| 192 | field3 = UTF8:Third field | ||
| 193 | |||
| 194 | This example produces an RSAPrivateKey structure, this is the | ||
| 195 | key contained in the file client.pem in all OpenSSL distributions | ||
| 196 | (note: the field names such as 'coeff' are ignored and are present just | ||
| 197 | for clarity): | ||
| 198 | |||
| 199 | asn1=SEQUENCE:private_key | ||
| 200 | [private_key] | ||
| 201 | version=INTEGER:0 | ||
| 202 | |||
| 203 | n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\ | ||
| 204 | D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9 | ||
| 205 | |||
| 206 | e=INTEGER:0x010001 | ||
| 207 | |||
| 208 | d=INTEGER:0x6F05EAD2F27FFAEC84BEC360C4B928FD5F3A9865D0FCAAD291E2A52F4A\ | ||
| 209 | F810DC6373278C006A0ABBA27DC8C63BF97F7E666E27C5284D7D3B1FFFE16B7A87B51D | ||
| 210 | |||
| 211 | p=INTEGER:0xF3929B9435608F8A22C208D86795271D54EBDFB09DDEF539AB083DA912\ | ||
| 212 | D4BD57 | ||
| 213 | |||
| 214 | q=INTEGER:0xC50016F89DFF2561347ED1186A46E150E28BF2D0F539A1594BBD7FE467\ | ||
| 215 | 46EC4F | ||
| 216 | |||
| 217 | exp1=INTEGER:0x9E7D4326C924AFC1DEA40B45650134966D6F9DFA3A7F9D698CD4ABEA\ | ||
| 218 | 9C0A39B9 | ||
| 219 | |||
| 220 | exp2=INTEGER:0xBA84003BB95355AFB7C50DF140C60513D0BA51D637272E355E397779\ | ||
| 221 | E7B2458F | ||
| 222 | |||
| 223 | coeff=INTEGER:0x30B9E4F2AFA5AC679F920FC83F1F2DF1BAF1779CF989447FABC2F5\ | ||
| 224 | 628657053A | ||
| 225 | |||
| 226 | This example is the corresponding public key in a SubjectPublicKeyInfo | ||
| 227 | structure: | ||
| 228 | |||
| 229 | # Start with a SEQUENCE | ||
| 230 | asn1=SEQUENCE:pubkeyinfo | ||
| 231 | |||
| 232 | # pubkeyinfo contains an algorithm identifier and the public key wrapped | ||
| 233 | # in a BIT STRING | ||
| 234 | [pubkeyinfo] | ||
| 235 | algorithm=SEQUENCE:rsa_alg | ||
| 236 | pubkey=BITWRAP,SEQUENCE:rsapubkey | ||
| 237 | |||
| 238 | # algorithm ID for RSA is just an OID and a NULL | ||
| 239 | [rsa_alg] | ||
| 240 | algorithm=OID:rsaEncryption | ||
| 241 | parameter=NULL | ||
| 242 | |||
| 243 | # Actual public key: modulus and exponent | ||
| 244 | [rsapubkey] | ||
| 245 | n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\ | ||
| 246 | D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9 | ||
| 247 | |||
| 248 | e=INTEGER:0x010001 | ||
| 249 | |||
| 250 | =head1 RETURN VALUES | ||
| 251 | |||
| 252 | ASN1_generate_nconf() and ASN1_generate_v3() return the encoded | ||
| 253 | data as an B<ASN1_TYPE> structure or B<NULL> if an error occurred. | ||
| 254 | |||
| 255 | The error codes that can be obtained by L<ERR_get_error(3)|ERR_get_error(3)>. | ||
| 256 | |||
| 257 | =head1 SEE ALSO | ||
| 258 | |||
| 259 | L<ERR_get_error(3)|ERR_get_error(3)> | ||
| 260 | |||
| 261 | =head1 HISTORY | ||
| 262 | |||
| 263 | ASN1_generate_nconf() and ASN1_generate_v3() were added to OpenSSL 0.9.8 | ||
| 264 | |||
| 265 | =cut | ||
