summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/gost/gost_asn1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/gost/gost_asn1.c')
-rw-r--r--src/lib/libcrypto/gost/gost_asn1.c53
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
20ASN1_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)
24IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT)
25
26ASN1_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)
30IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_INFO)
31
32ASN1_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)
37IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_AGREEMENT_INFO)
38
39
40ASN1_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)
45IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_PARAMS)
46
47ASN1_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)
51IMPLEMENT_ASN1_FUNCTIONS(GOST_CIPHER_PARAMS)
52
53#endif