diff options
author | jsing <> | 2015-02-09 16:04:46 +0000 |
---|---|---|
committer | jsing <> | 2015-02-09 16:04:46 +0000 |
commit | ef9e1f7eec0659c49a61db86c7a58ea19e13d6b1 (patch) | |
tree | 2a76c2380407aba5449ce959cc484da5f0ae67ea /src/lib/libcrypto/gost | |
parent | c67b08b466720c73bce5f5a0ee6d8ccf43683ae6 (diff) | |
download | openbsd-ef9e1f7eec0659c49a61db86c7a58ea19e13d6b1.tar.gz openbsd-ef9e1f7eec0659c49a61db86c7a58ea19e13d6b1.tar.bz2 openbsd-ef9e1f7eec0659c49a61db86c7a58ea19e13d6b1.zip |
Expand the IMPLEMENT_ASN1_FUNCTIONS macro so that the code is visible and
functions can be readily located.
Change has been scripted and there is no change to the generated assembly.
Discussed with beck@ miod@ tedu@
Diffstat (limited to 'src/lib/libcrypto/gost')
-rw-r--r-- | src/lib/libcrypto/gost/gost_asn1.c | 130 |
1 files changed, 125 insertions, 5 deletions
diff --git a/src/lib/libcrypto/gost/gost_asn1.c b/src/lib/libcrypto/gost/gost_asn1.c index b8ed244e49..5d7fb51177 100644 --- a/src/lib/libcrypto/gost/gost_asn1.c +++ b/src/lib/libcrypto/gost/gost_asn1.c | |||
@@ -21,20 +21,92 @@ ASN1_NDEF_SEQUENCE(GOST_KEY_TRANSPORT) = { | |||
21 | ASN1_SIMPLE(GOST_KEY_TRANSPORT, key_info, GOST_KEY_INFO), | 21 | ASN1_SIMPLE(GOST_KEY_TRANSPORT, key_info, GOST_KEY_INFO), |
22 | ASN1_IMP(GOST_KEY_TRANSPORT, key_agreement_info, GOST_KEY_AGREEMENT_INFO, 0) | 22 | ASN1_IMP(GOST_KEY_TRANSPORT, key_agreement_info, GOST_KEY_AGREEMENT_INFO, 0) |
23 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_TRANSPORT) | 23 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_TRANSPORT) |
24 | IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT) | 24 | |
25 | GOST_KEY_TRANSPORT * | ||
26 | d2i_GOST_KEY_TRANSPORT(GOST_KEY_TRANSPORT **a, const unsigned char **in, long len) | ||
27 | { | ||
28 | return (GOST_KEY_TRANSPORT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
29 | &GOST_KEY_TRANSPORT_it); | ||
30 | } | ||
31 | |||
32 | int | ||
33 | i2d_GOST_KEY_TRANSPORT(GOST_KEY_TRANSPORT *a, unsigned char **out) | ||
34 | { | ||
35 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_KEY_TRANSPORT_it); | ||
36 | } | ||
37 | |||
38 | GOST_KEY_TRANSPORT * | ||
39 | GOST_KEY_TRANSPORT_new(void) | ||
40 | { | ||
41 | return (GOST_KEY_TRANSPORT *)ASN1_item_new(&GOST_KEY_TRANSPORT_it); | ||
42 | } | ||
43 | |||
44 | void | ||
45 | GOST_KEY_TRANSPORT_free(GOST_KEY_TRANSPORT *a) | ||
46 | { | ||
47 | ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_TRANSPORT_it); | ||
48 | } | ||
25 | 49 | ||
26 | ASN1_NDEF_SEQUENCE(GOST_KEY_INFO) = { | 50 | ASN1_NDEF_SEQUENCE(GOST_KEY_INFO) = { |
27 | ASN1_SIMPLE(GOST_KEY_INFO, encrypted_key, ASN1_OCTET_STRING), | 51 | ASN1_SIMPLE(GOST_KEY_INFO, encrypted_key, ASN1_OCTET_STRING), |
28 | ASN1_SIMPLE(GOST_KEY_INFO, imit, ASN1_OCTET_STRING) | 52 | ASN1_SIMPLE(GOST_KEY_INFO, imit, ASN1_OCTET_STRING) |
29 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_INFO) | 53 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_INFO) |
30 | IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_INFO) | 54 | |
55 | GOST_KEY_INFO * | ||
56 | d2i_GOST_KEY_INFO(GOST_KEY_INFO **a, const unsigned char **in, long len) | ||
57 | { | ||
58 | return (GOST_KEY_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
59 | &GOST_KEY_INFO_it); | ||
60 | } | ||
61 | |||
62 | int | ||
63 | i2d_GOST_KEY_INFO(GOST_KEY_INFO *a, unsigned char **out) | ||
64 | { | ||
65 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_KEY_INFO_it); | ||
66 | } | ||
67 | |||
68 | GOST_KEY_INFO * | ||
69 | GOST_KEY_INFO_new(void) | ||
70 | { | ||
71 | return (GOST_KEY_INFO *)ASN1_item_new(&GOST_KEY_INFO_it); | ||
72 | } | ||
73 | |||
74 | void | ||
75 | GOST_KEY_INFO_free(GOST_KEY_INFO *a) | ||
76 | { | ||
77 | ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_INFO_it); | ||
78 | } | ||
31 | 79 | ||
32 | ASN1_NDEF_SEQUENCE(GOST_KEY_AGREEMENT_INFO) = { | 80 | ASN1_NDEF_SEQUENCE(GOST_KEY_AGREEMENT_INFO) = { |
33 | ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, cipher, ASN1_OBJECT), | 81 | ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, cipher, ASN1_OBJECT), |
34 | ASN1_IMP_OPT(GOST_KEY_AGREEMENT_INFO, ephem_key, X509_PUBKEY, 0), | 82 | ASN1_IMP_OPT(GOST_KEY_AGREEMENT_INFO, ephem_key, X509_PUBKEY, 0), |
35 | ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, eph_iv, ASN1_OCTET_STRING) | 83 | ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, eph_iv, ASN1_OCTET_STRING) |
36 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_AGREEMENT_INFO) | 84 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_AGREEMENT_INFO) |
37 | IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_AGREEMENT_INFO) | 85 | |
86 | GOST_KEY_AGREEMENT_INFO * | ||
87 | d2i_GOST_KEY_AGREEMENT_INFO(GOST_KEY_AGREEMENT_INFO **a, const unsigned char **in, long len) | ||
88 | { | ||
89 | return (GOST_KEY_AGREEMENT_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
90 | &GOST_KEY_AGREEMENT_INFO_it); | ||
91 | } | ||
92 | |||
93 | int | ||
94 | i2d_GOST_KEY_AGREEMENT_INFO(GOST_KEY_AGREEMENT_INFO *a, unsigned char **out) | ||
95 | { | ||
96 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_KEY_AGREEMENT_INFO_it); | ||
97 | } | ||
98 | |||
99 | GOST_KEY_AGREEMENT_INFO * | ||
100 | GOST_KEY_AGREEMENT_INFO_new(void) | ||
101 | { | ||
102 | return (GOST_KEY_AGREEMENT_INFO *)ASN1_item_new(&GOST_KEY_AGREEMENT_INFO_it); | ||
103 | } | ||
104 | |||
105 | void | ||
106 | GOST_KEY_AGREEMENT_INFO_free(GOST_KEY_AGREEMENT_INFO *a) | ||
107 | { | ||
108 | ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_AGREEMENT_INFO_it); | ||
109 | } | ||
38 | 110 | ||
39 | 111 | ||
40 | ASN1_NDEF_SEQUENCE(GOST_KEY_PARAMS) = { | 112 | ASN1_NDEF_SEQUENCE(GOST_KEY_PARAMS) = { |
@@ -42,12 +114,60 @@ ASN1_NDEF_SEQUENCE(GOST_KEY_PARAMS) = { | |||
42 | ASN1_SIMPLE(GOST_KEY_PARAMS, hash_params, ASN1_OBJECT), | 114 | ASN1_SIMPLE(GOST_KEY_PARAMS, hash_params, ASN1_OBJECT), |
43 | ASN1_OPT(GOST_KEY_PARAMS, cipher_params, ASN1_OBJECT), | 115 | ASN1_OPT(GOST_KEY_PARAMS, cipher_params, ASN1_OBJECT), |
44 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_PARAMS) | 116 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_PARAMS) |
45 | IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_PARAMS) | 117 | |
118 | GOST_KEY_PARAMS * | ||
119 | d2i_GOST_KEY_PARAMS(GOST_KEY_PARAMS **a, const unsigned char **in, long len) | ||
120 | { | ||
121 | return (GOST_KEY_PARAMS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
122 | &GOST_KEY_PARAMS_it); | ||
123 | } | ||
124 | |||
125 | int | ||
126 | i2d_GOST_KEY_PARAMS(GOST_KEY_PARAMS *a, unsigned char **out) | ||
127 | { | ||
128 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_KEY_PARAMS_it); | ||
129 | } | ||
130 | |||
131 | GOST_KEY_PARAMS * | ||
132 | GOST_KEY_PARAMS_new(void) | ||
133 | { | ||
134 | return (GOST_KEY_PARAMS *)ASN1_item_new(&GOST_KEY_PARAMS_it); | ||
135 | } | ||
136 | |||
137 | void | ||
138 | GOST_KEY_PARAMS_free(GOST_KEY_PARAMS *a) | ||
139 | { | ||
140 | ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_PARAMS_it); | ||
141 | } | ||
46 | 142 | ||
47 | ASN1_NDEF_SEQUENCE(GOST_CIPHER_PARAMS) = { | 143 | ASN1_NDEF_SEQUENCE(GOST_CIPHER_PARAMS) = { |
48 | ASN1_SIMPLE(GOST_CIPHER_PARAMS, iv, ASN1_OCTET_STRING), | 144 | ASN1_SIMPLE(GOST_CIPHER_PARAMS, iv, ASN1_OCTET_STRING), |
49 | ASN1_SIMPLE(GOST_CIPHER_PARAMS, enc_param_set, ASN1_OBJECT), | 145 | ASN1_SIMPLE(GOST_CIPHER_PARAMS, enc_param_set, ASN1_OBJECT), |
50 | } ASN1_NDEF_SEQUENCE_END(GOST_CIPHER_PARAMS) | 146 | } ASN1_NDEF_SEQUENCE_END(GOST_CIPHER_PARAMS) |
51 | IMPLEMENT_ASN1_FUNCTIONS(GOST_CIPHER_PARAMS) | 147 | |
148 | GOST_CIPHER_PARAMS * | ||
149 | d2i_GOST_CIPHER_PARAMS(GOST_CIPHER_PARAMS **a, const unsigned char **in, long len) | ||
150 | { | ||
151 | return (GOST_CIPHER_PARAMS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
152 | &GOST_CIPHER_PARAMS_it); | ||
153 | } | ||
154 | |||
155 | int | ||
156 | i2d_GOST_CIPHER_PARAMS(GOST_CIPHER_PARAMS *a, unsigned char **out) | ||
157 | { | ||
158 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_CIPHER_PARAMS_it); | ||
159 | } | ||
160 | |||
161 | GOST_CIPHER_PARAMS * | ||
162 | GOST_CIPHER_PARAMS_new(void) | ||
163 | { | ||
164 | return (GOST_CIPHER_PARAMS *)ASN1_item_new(&GOST_CIPHER_PARAMS_it); | ||
165 | } | ||
166 | |||
167 | void | ||
168 | GOST_CIPHER_PARAMS_free(GOST_CIPHER_PARAMS *a) | ||
169 | { | ||
170 | ASN1_item_free((ASN1_VALUE *)a, &GOST_CIPHER_PARAMS_it); | ||
171 | } | ||
52 | 172 | ||
53 | #endif | 173 | #endif |