GOST public key algorithm ENGINE donated to the OpenSSL by Cryptocom.
[openssl.git] / engines / ccgost / tools.h
1 #ifndef GOST_TOOLS_H
2 #define GOST_TOOLS_H
3 /**********************************************************************
4  *                        sign.h                                      *
5  *             Copyright (c) 2006 Cryptocom LTD                       *
6  *       This file is distributed under the same license as OpenSSL   *
7  *                                                                    *
8  *         Miscellaneous functions used in GOST engine                *
9  *         OpenSSL 0.9.9 libraries required to compile and use        *
10  *                              this code                             *
11  **********************************************************************/ 
12 #include <openssl/evp.h>
13 #include <openssl/dsa.h>
14
15 /* from gost_sign.c */
16 /* Convert GOST R 34.11 hash sum to bignum according to standard */
17 BIGNUM *hashsum2bn(const unsigned char *dgst) ;
18 /* Store bignum in byte array of given length, prepending by zeros
19  * if nesseccary */
20 int store_bignum(BIGNUM *bn, unsigned char *buf,int len);
21 /* Read bignum, which can have few MSB all-zeros    from buffer*/ 
22 BIGNUM *getbnfrombuf(const unsigned char *buf,size_t len);
23 /* Pack GOST R 34.10 signature according to CryptoCom rules */
24 int pack_sign_cc(DSA_SIG *s,int order,unsigned char *sig, unsigned int *siglen);
25 /* Pack GOST R 34.10 signature according to CryptoPro rules */
26 int pack_sign_cp(DSA_SIG *s,int order,unsigned char *sig, unsigned int *siglen); 
27 /* Unpack GOST R 34.10 signature according to CryptoCom rules */
28 DSA_SIG *unpack_cc_signature(const unsigned char *sig,size_t siglen) ;
29 /* Unpack GOST R 34.10 signature according to CryptoPro rules */
30 DSA_SIG *unpack_cp_signature(const unsigned char *sig,size_t siglen) ;
31 /* from ameth.c */
32 /* Get private key as BIGNUM from both R 34.10-94 and R 34.10-2001  keys*/
33 BIGNUM* gost_get_priv_key(const EVP_PKEY *pkey) ;
34 /* Find NID by GOST 94 parameters */
35 int gost94_nid_by_params(DSA *p) ;
36
37
38 #endif