]>
Commit | Line | Data |
---|---|---|
9de6bb8a DSH |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | d2i_DSAPublicKey, i2d_DSAPublicKey, d2i_DSAPrivateKey, i2d_DSAPrivateKey, | |
01d358a3 DSH |
6 | d2i_DSA_PUBKEY, i2d_DSA_PUBKEY, d2i_DSAparams, i2d_DSAparams, |
7 | d2i_DSA_SIG, i2d_DSA_SIG - DSA key encoding and parsing functions. | |
9de6bb8a DSH |
8 | |
9 | =head1 SYNOPSIS | |
10 | ||
11 | #include <openssl/dsa.h> | |
2abd5b7a | 12 | #include <openssl/x509.h> |
9de6bb8a DSH |
13 | |
14 | DSA * d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); | |
15 | ||
16 | int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); | |
17 | ||
18 | DSA * d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); | |
19 | ||
20 | int i2d_DSA_PUBKEY(const DSA *a, unsigned char **pp); | |
21 | ||
01d358a3 DSH |
22 | DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); |
23 | DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); | |
24 | ||
25 | int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); | |
26 | int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); | |
27 | ||
9de6bb8a DSH |
28 | DSA * d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); |
29 | ||
30 | int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); | |
31 | ||
32 | DSA * d2i_DSAparams(DSA **a, const unsigned char **pp, long length); | |
33 | ||
34 | int i2d_DSAparams(const DSA *a, unsigned char **pp); | |
35 | ||
36 | DSA * d2i_DSA_SIG(DSA_SIG **a, const unsigned char **pp, long length); | |
37 | ||
38 | int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); | |
39 | ||
40 | =head1 DESCRIPTION | |
41 | ||
42 | d2i_DSAPublicKey() and i2d_DSAPublicKey() decode and encode the DSA public key | |
43 | components structure. | |
44 | ||
2abd5b7a RL |
45 | d2i_DSA_PUBKEY() and i2d_DSA_PUBKEY() decode and encode an DSA public key using |
46 | a SubjectPublicKeyInfo (certificate public key) structure. | |
9de6bb8a | 47 | |
01d358a3 DSH |
48 | d2i_DSA_PUBKEY_bio(), d2i_DSA_PUBKEY_fp(), i2d_DSA_PUBKEY_bio() and |
49 | i2d_DSA_PUBKEY_fp() are similar to d2i_DSA_PUBKEY() and i2d_DSA_PUBKEY() | |
50 | except they decode or encode using a B<BIO> or B<FILE> pointer. | |
51 | ||
9de6bb8a DSH |
52 | d2i_DSAPrivateKey(), i2d_DSAPrivateKey() decode and encode the DSA private key |
53 | components. | |
54 | ||
55 | d2i_DSAparams(), i2d_DSAparams() decode and encode the DSA parameters using | |
56 | a B<Dss-Parms> structure as defined in RFC2459. | |
57 | ||
58 | d2i_DSA_SIG(), i2d_DSA_SIG() decode and encode a DSA signature using a | |
59 | B<Dss-Sig-Value> structure as defined in RFC2459. | |
60 | ||
61 | The usage of all of these functions is similar to the d2i_X509() and | |
9b86974e | 62 | i2d_X509() described in the L<d2i_X509(3)> manual page. |
9de6bb8a DSH |
63 | |
64 | =head1 NOTES | |
65 | ||
66 | The B<DSA> structure passed to the private key encoding functions should have | |
67 | all the private key components present. | |
68 | ||
1bc74519 | 69 | The data encoded by the private key functions is unencrypted and therefore |
9de6bb8a DSH |
70 | offers no private key security. |
71 | ||
72 | The B<DSA_PUBKEY> functions should be used in preference to the B<DSAPublicKey> | |
73 | functions when encoding public keys because they use a standard format. | |
74 | ||
0c787647 DSH |
75 | The B<DSAPublicKey> functions use a non standard format which is a |
76 | B<SEQUENCE> consisting of the B<p>, B<q>, B<g> and B<pub_key> fields | |
77 | respectively. | |
9de6bb8a | 78 | |
186bb907 | 79 | The B<DSAPrivateKey> functions also use a non standard structure consisting |
9de6bb8a DSH |
80 | consisting of a SEQUENCE containing the B<p>, B<q>, B<g> and B<pub_key> and |
81 | B<priv_key> fields respectively. | |
82 | ||
83 | =head1 SEE ALSO | |
84 | ||
9b86974e | 85 | L<d2i_X509(3)> |
9de6bb8a DSH |
86 | |
87 | =head1 HISTORY | |
88 | ||
89 | TBA | |
90 | ||
91 | =cut | |
e2f92610 RS |
92 | |
93 | =head1 COPYRIGHT | |
94 | ||
95 | Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. | |
96 | ||
97 | Licensed under the OpenSSL license (the "License"). You may not use | |
98 | this file except in compliance with the License. You can obtain a copy | |
99 | in the file LICENSE in the source distribution or at | |
100 | L<https://www.openssl.org/source/license.html>. | |
101 | ||
102 | =cut |