summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/gost
diff options
context:
space:
mode:
authorjsing <>2015-02-09 16:04:46 +0000
committerjsing <>2015-02-09 16:04:46 +0000
commitef9e1f7eec0659c49a61db86c7a58ea19e13d6b1 (patch)
tree2a76c2380407aba5449ce959cc484da5f0ae67ea /src/lib/libcrypto/gost
parentc67b08b466720c73bce5f5a0ee6d8ccf43683ae6 (diff)
downloadopenbsd-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.c130
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)
24IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT) 24
25GOST_KEY_TRANSPORT *
26d2i_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
32int
33i2d_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
38GOST_KEY_TRANSPORT *
39GOST_KEY_TRANSPORT_new(void)
40{
41 return (GOST_KEY_TRANSPORT *)ASN1_item_new(&GOST_KEY_TRANSPORT_it);
42}
43
44void
45GOST_KEY_TRANSPORT_free(GOST_KEY_TRANSPORT *a)
46{
47 ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_TRANSPORT_it);
48}
25 49
26ASN1_NDEF_SEQUENCE(GOST_KEY_INFO) = { 50ASN1_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)
30IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_INFO) 54
55GOST_KEY_INFO *
56d2i_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
62int
63i2d_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
68GOST_KEY_INFO *
69GOST_KEY_INFO_new(void)
70{
71 return (GOST_KEY_INFO *)ASN1_item_new(&GOST_KEY_INFO_it);
72}
73
74void
75GOST_KEY_INFO_free(GOST_KEY_INFO *a)
76{
77 ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_INFO_it);
78}
31 79
32ASN1_NDEF_SEQUENCE(GOST_KEY_AGREEMENT_INFO) = { 80ASN1_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)
37IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_AGREEMENT_INFO) 85
86GOST_KEY_AGREEMENT_INFO *
87d2i_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
93int
94i2d_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
99GOST_KEY_AGREEMENT_INFO *
100GOST_KEY_AGREEMENT_INFO_new(void)
101{
102 return (GOST_KEY_AGREEMENT_INFO *)ASN1_item_new(&GOST_KEY_AGREEMENT_INFO_it);
103}
104
105void
106GOST_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
40ASN1_NDEF_SEQUENCE(GOST_KEY_PARAMS) = { 112ASN1_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)
45IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_PARAMS) 117
118GOST_KEY_PARAMS *
119d2i_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
125int
126i2d_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
131GOST_KEY_PARAMS *
132GOST_KEY_PARAMS_new(void)
133{
134 return (GOST_KEY_PARAMS *)ASN1_item_new(&GOST_KEY_PARAMS_it);
135}
136
137void
138GOST_KEY_PARAMS_free(GOST_KEY_PARAMS *a)
139{
140 ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_PARAMS_it);
141}
46 142
47ASN1_NDEF_SEQUENCE(GOST_CIPHER_PARAMS) = { 143ASN1_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)
51IMPLEMENT_ASN1_FUNCTIONS(GOST_CIPHER_PARAMS) 147
148GOST_CIPHER_PARAMS *
149d2i_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
155int
156i2d_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
161GOST_CIPHER_PARAMS *
162GOST_CIPHER_PARAMS_new(void)
163{
164 return (GOST_CIPHER_PARAMS *)ASN1_item_new(&GOST_CIPHER_PARAMS_it);
165}
166
167void
168GOST_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