gost_asn1.c revision 272461
145501Sjdp/********************************************************************** 262801Sjdp * gost_keytrans.c * 345501Sjdp * Copyright (c) 2005-2006 Cryptocom LTD * 445501Sjdp * This file is distributed under the same license as OpenSSL * 545501Sjdp * * 645501Sjdp * ASN1 structure definition for GOST key transport * 745501Sjdp * Requires OpenSSL 0.9.9 for compilation * 845501Sjdp **********************************************************************/ 945501Sjdp#include <stdio.h> 1045501Sjdp#include <openssl/asn1t.h> 1145501Sjdp#include <openssl/x509.h> 1245501Sjdp#include "gost_lcl.h" 1345501Sjdp 1445501SjdpASN1_NDEF_SEQUENCE(GOST_KEY_TRANSPORT) = { 1545501Sjdp ASN1_SIMPLE(GOST_KEY_TRANSPORT, key_info, GOST_KEY_INFO), 1645501Sjdp ASN1_IMP(GOST_KEY_TRANSPORT, key_agreement_info, GOST_KEY_AGREEMENT_INFO, 0) 1745501Sjdp} ASN1_NDEF_SEQUENCE_END(GOST_KEY_TRANSPORT) 1845501Sjdp 1945501SjdpIMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT) 2045501Sjdp 2145501SjdpASN1_NDEF_SEQUENCE(GOST_KEY_INFO) = { 2245501Sjdp ASN1_SIMPLE(GOST_KEY_INFO, encrypted_key, ASN1_OCTET_STRING), 2345501Sjdp ASN1_SIMPLE(GOST_KEY_INFO, imit, ASN1_OCTET_STRING) 2445501Sjdp} ASN1_NDEF_SEQUENCE_END(GOST_KEY_INFO) 2545501Sjdp 2650476SpeterIMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_INFO) 2745501Sjdp 2845501SjdpASN1_NDEF_SEQUENCE(GOST_KEY_AGREEMENT_INFO) = { 2945501Sjdp ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, cipher, ASN1_OBJECT), 3045501Sjdp ASN1_IMP_OPT(GOST_KEY_AGREEMENT_INFO, ephem_key, X509_PUBKEY, 0), 3145501Sjdp ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, eph_iv, ASN1_OCTET_STRING) 32115396Skan} ASN1_NDEF_SEQUENCE_END(GOST_KEY_AGREEMENT_INFO) 33115396Skan 34115396SkanIMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_AGREEMENT_INFO) 3585004Sdfr 3685004SdfrASN1_NDEF_SEQUENCE(GOST_KEY_PARAMS) = { 3745501Sjdp ASN1_SIMPLE(GOST_KEY_PARAMS, key_params, ASN1_OBJECT), 3845501Sjdp ASN1_SIMPLE(GOST_KEY_PARAMS, hash_params, ASN1_OBJECT), 3945501Sjdp ASN1_OPT(GOST_KEY_PARAMS, cipher_params, ASN1_OBJECT), 4045501Sjdp} ASN1_NDEF_SEQUENCE_END(GOST_KEY_PARAMS) 4148205Sjdp 4285004SdfrIMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_PARAMS) 4385004Sdfr 44107071StmmASN1_NDEF_SEQUENCE(GOST_CIPHER_PARAMS) = { 45107071Stmm ASN1_SIMPLE(GOST_CIPHER_PARAMS, iv, ASN1_OCTET_STRING), 4685004Sdfr ASN1_SIMPLE(GOST_CIPHER_PARAMS, enc_param_set, ASN1_OBJECT), 47157220Sdes} ASN1_NDEF_SEQUENCE_END(GOST_CIPHER_PARAMS) 4885004Sdfr 4985004SdfrIMPLEMENT_ASN1_FUNCTIONS(GOST_CIPHER_PARAMS) 50157220Sdes 5185004SdfrASN1_NDEF_SEQUENCE(GOST_CLIENT_KEY_EXCHANGE_PARAMS) = { /*FIXME incomplete*/ 5285004Sdfr ASN1_SIMPLE(GOST_CLIENT_KEY_EXCHANGE_PARAMS, gkt, GOST_KEY_TRANSPORT) 5385004Sdfr} ASN1_NDEF_SEQUENCE_END(GOST_CLIENT_KEY_EXCHANGE_PARAMS) 5448205Sjdp 5585004SdfrIMPLEMENT_ASN1_FUNCTIONS(GOST_CLIENT_KEY_EXCHANGE_PARAMS) 5685004Sdfr