1 /**********************************************************************
3 * Copyright (c) 2005-2006 Cryptocom LTD *
4 * This file is distributed under the same license as OpenSSL *
6 * ASN1 structure declaration for GOST key transport *
7 * Requires OpenSSL 0.9.9 for compilation *
8 **********************************************************************/
9 #ifndef GOST_KEY_TRANS_H
10 #define GOST_KEY_TRANS_H
11 #include <openssl/asn1t.h>
12 #include <openssl/x509.h>
16 ASN1_OCTET_STRING *encrypted_key;
17 ASN1_OCTET_STRING *imit;
20 DECLARE_ASN1_FUNCTIONS(GOST_KEY_INFO)
24 X509_PUBKEY *ephem_key;
25 ASN1_OCTET_STRING *eph_iv;
26 } GOST_KEY_AGREEMENT_INFO;
28 DECLARE_ASN1_FUNCTIONS(GOST_KEY_AGREEMENT_INFO)
31 GOST_KEY_INFO *key_info;
32 GOST_KEY_AGREEMENT_INFO *key_agreement_info;
35 DECLARE_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT)
37 typedef struct { //FIXME incomplete
38 GOST_KEY_TRANSPORT *gkt;
39 } GOST_CLIENT_KEY_EXCHANGE_PARAMS;
41 DECLARE_ASN1_FUNCTIONS(GOST_CLIENT_KEY_EXCHANGE_PARAMS)
43 ASN1_OBJECT *key_params;
44 ASN1_OBJECT *hash_params;
45 ASN1_OBJECT *cipher_params;
48 DECLARE_ASN1_FUNCTIONS(GOST_KEY_PARAMS)
51 ASN1_OCTET_STRING *iv;
52 ASN1_OBJECT *enc_param_set;
55 DECLARE_ASN1_FUNCTIONS(GOST_CIPHER_PARAMS)