diff options
Diffstat (limited to 'src/lib/libcrypto/gost/gost_asn1.c')
-rw-r--r-- | src/lib/libcrypto/gost/gost_asn1.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/lib/libcrypto/gost/gost_asn1.c b/src/lib/libcrypto/gost/gost_asn1.c new file mode 100644 index 0000000000..b8ed244e49 --- /dev/null +++ b/src/lib/libcrypto/gost/gost_asn1.c | |||
@@ -0,0 +1,53 @@ | |||
1 | /********************************************************************** | ||
2 | * gost_keytrans.c * | ||
3 | * Copyright (c) 2005-2006 Cryptocom LTD * | ||
4 | * This file is distributed under the same license as OpenSSL * | ||
5 | * * | ||
6 | * ASN1 structure definition for GOST key transport * | ||
7 | * Requires OpenSSL 0.9.9 for compilation * | ||
8 | **********************************************************************/ | ||
9 | |||
10 | #include <openssl/opensslconf.h> | ||
11 | |||
12 | #ifndef OPENSSL_NO_GOST | ||
13 | #include <openssl/asn1t.h> | ||
14 | #include <openssl/x509.h> | ||
15 | #include <openssl/gost.h> | ||
16 | |||
17 | #include "gost_locl.h" | ||
18 | #include "gost_asn1.h" | ||
19 | |||
20 | ASN1_NDEF_SEQUENCE(GOST_KEY_TRANSPORT) = { | ||
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) | ||
23 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_TRANSPORT) | ||
24 | IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT) | ||
25 | |||
26 | ASN1_NDEF_SEQUENCE(GOST_KEY_INFO) = { | ||
27 | ASN1_SIMPLE(GOST_KEY_INFO, encrypted_key, ASN1_OCTET_STRING), | ||
28 | ASN1_SIMPLE(GOST_KEY_INFO, imit, ASN1_OCTET_STRING) | ||
29 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_INFO) | ||
30 | IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_INFO) | ||
31 | |||
32 | ASN1_NDEF_SEQUENCE(GOST_KEY_AGREEMENT_INFO) = { | ||
33 | ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, cipher, ASN1_OBJECT), | ||
34 | ASN1_IMP_OPT(GOST_KEY_AGREEMENT_INFO, ephem_key, X509_PUBKEY, 0), | ||
35 | ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, eph_iv, ASN1_OCTET_STRING) | ||
36 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_AGREEMENT_INFO) | ||
37 | IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_AGREEMENT_INFO) | ||
38 | |||
39 | |||
40 | ASN1_NDEF_SEQUENCE(GOST_KEY_PARAMS) = { | ||
41 | ASN1_SIMPLE(GOST_KEY_PARAMS, key_params, ASN1_OBJECT), | ||
42 | ASN1_SIMPLE(GOST_KEY_PARAMS, hash_params, ASN1_OBJECT), | ||
43 | ASN1_OPT(GOST_KEY_PARAMS, cipher_params, ASN1_OBJECT), | ||
44 | } ASN1_NDEF_SEQUENCE_END(GOST_KEY_PARAMS) | ||
45 | IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_PARAMS) | ||
46 | |||
47 | ASN1_NDEF_SEQUENCE(GOST_CIPHER_PARAMS) = { | ||
48 | ASN1_SIMPLE(GOST_CIPHER_PARAMS, iv, ASN1_OCTET_STRING), | ||
49 | ASN1_SIMPLE(GOST_CIPHER_PARAMS, enc_param_set, ASN1_OBJECT), | ||
50 | } ASN1_NDEF_SEQUENCE_END(GOST_CIPHER_PARAMS) | ||
51 | IMPLEMENT_ASN1_FUNCTIONS(GOST_CIPHER_PARAMS) | ||
52 | |||
53 | #endif | ||