Branch data Line data Source code
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 : : #include <stdio.h>
10 : : #include <openssl/asn1t.h>
11 : : #include <openssl/x509.h>
12 : : #include "gost_lcl.h"
13 : :
14 : : ASN1_NDEF_SEQUENCE(GOST_KEY_TRANSPORT) = {
15 : : ASN1_SIMPLE(GOST_KEY_TRANSPORT, key_info, GOST_KEY_INFO),
16 : : ASN1_IMP(GOST_KEY_TRANSPORT, key_agreement_info, GOST_KEY_AGREEMENT_INFO, 0)
17 : : } ASN1_NDEF_SEQUENCE_END(GOST_KEY_TRANSPORT)
18 : :
19 : 0 : IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT)
20 : :
21 : : ASN1_NDEF_SEQUENCE(GOST_KEY_INFO) = {
22 : : ASN1_SIMPLE(GOST_KEY_INFO, encrypted_key, ASN1_OCTET_STRING),
23 : : ASN1_SIMPLE(GOST_KEY_INFO, imit, ASN1_OCTET_STRING)
24 : : } ASN1_NDEF_SEQUENCE_END(GOST_KEY_INFO)
25 : :
26 : 0 : IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_INFO)
27 : :
28 : : ASN1_NDEF_SEQUENCE(GOST_KEY_AGREEMENT_INFO) = {
29 : : ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, cipher, ASN1_OBJECT),
30 : : ASN1_IMP_OPT(GOST_KEY_AGREEMENT_INFO, ephem_key, X509_PUBKEY, 0),
31 : : ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, eph_iv, ASN1_OCTET_STRING)
32 : : } ASN1_NDEF_SEQUENCE_END(GOST_KEY_AGREEMENT_INFO)
33 : :
34 : 0 : IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_AGREEMENT_INFO)
35 : :
36 : : ASN1_NDEF_SEQUENCE(GOST_KEY_PARAMS) = {
37 : : ASN1_SIMPLE(GOST_KEY_PARAMS, key_params, ASN1_OBJECT),
38 : : ASN1_SIMPLE(GOST_KEY_PARAMS, hash_params, ASN1_OBJECT),
39 : : ASN1_OPT(GOST_KEY_PARAMS, cipher_params, ASN1_OBJECT),
40 : : } ASN1_NDEF_SEQUENCE_END(GOST_KEY_PARAMS)
41 : :
42 : 0 : IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_PARAMS)
43 : :
44 : : ASN1_NDEF_SEQUENCE(GOST_CIPHER_PARAMS) = {
45 : : ASN1_SIMPLE(GOST_CIPHER_PARAMS, iv, ASN1_OCTET_STRING),
46 : : ASN1_SIMPLE(GOST_CIPHER_PARAMS, enc_param_set, ASN1_OBJECT),
47 : : } ASN1_NDEF_SEQUENCE_END(GOST_CIPHER_PARAMS)
48 : :
49 : 0 : IMPLEMENT_ASN1_FUNCTIONS(GOST_CIPHER_PARAMS)
50 : :
51 : : ASN1_NDEF_SEQUENCE(GOST_CLIENT_KEY_EXCHANGE_PARAMS) = { /*FIXME incomplete*/
52 : : ASN1_SIMPLE(GOST_CLIENT_KEY_EXCHANGE_PARAMS, gkt, GOST_KEY_TRANSPORT)
53 : : } ASN1_NDEF_SEQUENCE_END(GOST_CLIENT_KEY_EXCHANGE_PARAMS)
54 : :
55 : 0 : IMPLEMENT_ASN1_FUNCTIONS(GOST_CLIENT_KEY_EXCHANGE_PARAMS)
|