summaryrefslogtreecommitdiffstats
path: root/engines/ccgost
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2015-01-22 03:40:55 +0000
committerMatt Caswell <matt@openssl.org>2015-01-22 09:20:09 +0000
commit0f113f3ee4d629ef9a4a30911b22b224772085e5 (patch)
treee014603da5aed1d0751f587a66d6e270b6bda3de /engines/ccgost
parent22b52164aaed31d6e93dbd2d397ace041360e6aa (diff)
Run util/openssl-format-source -v -c .
Reviewed-by: Tim Hudson <tjh@openssl.org>
Diffstat (limited to 'engines/ccgost')
-rw-r--r--engines/ccgost/e_gost_err.c252
-rw-r--r--engines/ccgost/e_gost_err.h159
-rw-r--r--engines/ccgost/gost2001.c562
-rw-r--r--engines/ccgost/gost2001_keyx.c514
-rw-r--r--engines/ccgost/gost2001_keyx.h16
-rw-r--r--engines/ccgost/gost2814789test.c2916
-rw-r--r--engines/ccgost/gost89.c896
-rw-r--r--engines/ccgost/gost89.h104
-rw-r--r--engines/ccgost/gost94_keyx.c484
-rw-r--r--engines/ccgost/gost_ameth.c1802
-rw-r--r--engines/ccgost/gost_asn1.c31
-rw-r--r--engines/ccgost/gost_crypt.c1110
-rw-r--r--engines/ccgost/gost_ctl.c138
-rw-r--r--engines/ccgost/gost_eng.c444
-rw-r--r--engines/ccgost/gost_keywrap.c148
-rw-r--r--engines/ccgost/gost_keywrap.h53
-rw-r--r--engines/ccgost/gost_lcl.h265
-rw-r--r--engines/ccgost/gost_md.c107
-rw-r--r--engines/ccgost/gost_params.c371
-rw-r--r--engines/ccgost/gost_params.h28
-rw-r--r--engines/ccgost/gost_pmeth.c1127
-rw-r--r--engines/ccgost/gost_sign.c475
-rw-r--r--engines/ccgost/gosthash.c404
-rw-r--r--engines/ccgost/gosthash.h54
-rw-r--r--engines/ccgost/gostsum.c349
25 files changed, 6410 insertions, 6399 deletions
diff --git a/engines/ccgost/e_gost_err.c b/engines/ccgost/e_gost_err.c
index c0c05769c9..47022b1259 100644
--- a/engines/ccgost/e_gost_err.c
+++ b/engines/ccgost/e_gost_err.c
@@ -7,7 +7,7 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
@@ -53,7 +53,8 @@
*
*/
-/* NOTE: this file was auto generated by the mkerr.pl script: any changes
+/*
+ * NOTE: this file was auto generated by the mkerr.pl script: any changes
* made to it will be overwritten when the script next updates this file,
* only reason strings will be preserved.
*/
@@ -65,146 +66,153 @@
/* BEGIN ERROR CODES */
#ifndef OPENSSL_NO_ERR
-#define ERR_FUNC(func) ERR_PACK(0,func,0)
-#define ERR_REASON(reason) ERR_PACK(0,0,reason)
-
-static ERR_STRING_DATA GOST_str_functs[]=
- {
-{ERR_FUNC(GOST_F_DECODE_GOST_ALGOR_PARAMS), "DECODE_GOST_ALGOR_PARAMS"},
-{ERR_FUNC(GOST_F_ENCODE_GOST_ALGOR_PARAMS), "ENCODE_GOST_ALGOR_PARAMS"},
-{ERR_FUNC(GOST_F_FILL_GOST2001_PARAMS), "FILL_GOST2001_PARAMS"},
-{ERR_FUNC(GOST_F_FILL_GOST94_PARAMS), "FILL_GOST94_PARAMS"},
-{ERR_FUNC(GOST_F_GET_ENCRYPTION_PARAMS), "GET_ENCRYPTION_PARAMS"},
-{ERR_FUNC(GOST_F_GOST2001_COMPUTE_PUBLIC), "GOST2001_COMPUTE_PUBLIC"},
-{ERR_FUNC(GOST_F_GOST2001_DO_SIGN), "GOST2001_DO_SIGN"},
-{ERR_FUNC(GOST_F_GOST2001_DO_VERIFY), "GOST2001_DO_VERIFY"},
-{ERR_FUNC(GOST_F_GOST2001_KEYGEN), "GOST2001_KEYGEN"},
-{ERR_FUNC(GOST_F_GOST89_GET_ASN1_PARAMETERS), "GOST89_GET_ASN1_PARAMETERS"},
-{ERR_FUNC(GOST_F_GOST89_SET_ASN1_PARAMETERS), "GOST89_SET_ASN1_PARAMETERS"},
-{ERR_FUNC(GOST_F_GOST94_COMPUTE_PUBLIC), "GOST94_COMPUTE_PUBLIC"},
-{ERR_FUNC(GOST_F_GOST_CIPHER_CTL), "GOST_CIPHER_CTL"},
-{ERR_FUNC(GOST_F_GOST_DO_SIGN), "GOST_DO_SIGN"},
-{ERR_FUNC(GOST_F_GOST_DO_VERIFY), "GOST_DO_VERIFY"},
-{ERR_FUNC(GOST_F_GOST_IMIT_CTRL), "GOST_IMIT_CTRL"},
-{ERR_FUNC(GOST_F_GOST_IMIT_FINAL), "GOST_IMIT_FINAL"},
-{ERR_FUNC(GOST_F_GOST_IMIT_UPDATE), "GOST_IMIT_UPDATE"},
-{ERR_FUNC(GOST_F_PARAM_COPY_GOST01), "PARAM_COPY_GOST01"},
-{ERR_FUNC(GOST_F_PARAM_COPY_GOST94), "PARAM_COPY_GOST94"},
-{ERR_FUNC(GOST_F_PKEY_GOST01CP_DECRYPT), "PKEY_GOST01CP_DECRYPT"},
-{ERR_FUNC(GOST_F_PKEY_GOST01CP_ENCRYPT), "PKEY_GOST01CP_ENCRYPT"},
-{ERR_FUNC(GOST_F_PKEY_GOST01CP_KEYGEN), "PKEY_GOST01CP_KEYGEN"},
-{ERR_FUNC(GOST_F_PKEY_GOST01_PARAMGEN), "PKEY_GOST01_PARAMGEN"},
-{ERR_FUNC(GOST_F_PKEY_GOST2001_DERIVE), "PKEY_GOST2001_DERIVE"},
-{ERR_FUNC(GOST_F_PKEY_GOST94CP_DECRYPT), "PKEY_GOST94CP_DECRYPT"},
-{ERR_FUNC(GOST_F_PKEY_GOST94CP_ENCRYPT), "PKEY_GOST94CP_ENCRYPT"},
-{ERR_FUNC(GOST_F_PKEY_GOST94CP_KEYGEN), "PKEY_GOST94CP_KEYGEN"},
-{ERR_FUNC(GOST_F_PKEY_GOST94_PARAMGEN), "PKEY_GOST94_PARAMGEN"},
-{ERR_FUNC(GOST_F_PKEY_GOST_CTRL), "PKEY_GOST_CTRL"},
-{ERR_FUNC(GOST_F_PKEY_GOST_CTRL01_STR), "PKEY_GOST_CTRL01_STR"},
-{ERR_FUNC(GOST_F_PKEY_GOST_CTRL94_STR), "PKEY_GOST_CTRL94_STR"},
-{ERR_FUNC(GOST_F_PKEY_GOST_MAC_CTRL), "PKEY_GOST_MAC_CTRL"},
-{ERR_FUNC(GOST_F_PKEY_GOST_MAC_CTRL_STR), "PKEY_GOST_MAC_CTRL_STR"},
-{ERR_FUNC(GOST_F_PKEY_GOST_MAC_KEYGEN), "PKEY_GOST_MAC_KEYGEN"},
-{ERR_FUNC(GOST_F_PRINT_GOST_01), "PRINT_GOST_01"},
-{ERR_FUNC(GOST_F_PRIV_DECODE_GOST), "PRIV_DECODE_GOST"},
-{ERR_FUNC(GOST_F_PUB_DECODE_GOST01), "PUB_DECODE_GOST01"},
-{ERR_FUNC(GOST_F_PUB_DECODE_GOST94), "PUB_DECODE_GOST94"},
-{ERR_FUNC(GOST_F_PUB_ENCODE_GOST01), "PUB_ENCODE_GOST01"},
-{ERR_FUNC(GOST_F_UNPACK_CC_SIGNATURE), "UNPACK_CC_SIGNATURE"},
-{ERR_FUNC(GOST_F_UNPACK_CP_SIGNATURE), "UNPACK_CP_SIGNATURE"},
-{0,NULL}
- };
-
-static ERR_STRING_DATA GOST_str_reasons[]=
- {
-{ERR_REASON(GOST_R_BAD_KEY_PARAMETERS_FORMAT),"bad key parameters format"},
-{ERR_REASON(GOST_R_BAD_PKEY_PARAMETERS_FORMAT),"bad pkey parameters format"},
-{ERR_REASON(GOST_R_CANNOT_PACK_EPHEMERAL_KEY),"cannot pack ephemeral key"},
-{ERR_REASON(GOST_R_CTRL_CALL_FAILED) ,"ctrl call failed"},
-{ERR_REASON(GOST_R_ERROR_COMPUTING_SHARED_KEY),"error computing shared key"},
-{ERR_REASON(GOST_R_ERROR_PACKING_KEY_TRANSPORT_INFO),"error packing key transport info"},
-{ERR_REASON(GOST_R_ERROR_PARSING_KEY_TRANSPORT_INFO),"error parsing key transport info"},
-{ERR_REASON(GOST_R_INCOMPATIBLE_ALGORITHMS),"incompatible algorithms"},
-{ERR_REASON(GOST_R_INCOMPATIBLE_PEER_KEY),"incompatible peer key"},
-{ERR_REASON(GOST_R_INVALID_CIPHER_PARAMS),"invalid cipher params"},
-{ERR_REASON(GOST_R_INVALID_CIPHER_PARAM_OID),"invalid cipher param oid"},
-{ERR_REASON(GOST_R_INVALID_DIGEST_TYPE) ,"invalid digest type"},
-{ERR_REASON(GOST_R_INVALID_GOST94_PARMSET),"invalid gost94 parmset"},
-{ERR_REASON(GOST_R_INVALID_IV_LENGTH) ,"invalid iv length"},
-{ERR_REASON(GOST_R_INVALID_MAC_KEY_LENGTH),"invalid mac key length"},
-{ERR_REASON(GOST_R_INVALID_PARAMSET) ,"invalid paramset"},
-{ERR_REASON(GOST_R_KEY_IS_NOT_INITALIZED),"key is not initalized"},
-{ERR_REASON(GOST_R_KEY_IS_NOT_INITIALIZED),"key is not initialized"},
-{ERR_REASON(GOST_R_KEY_PARAMETERS_MISSING),"key parameters missing"},
-{ERR_REASON(GOST_R_MAC_KEY_NOT_SET) ,"mac key not set"},
-{ERR_REASON(GOST_R_NO_PARAMETERS_SET) ,"no parameters set"},
-{ERR_REASON(GOST_R_NO_PEER_KEY) ,"no peer key"},
-{ERR_REASON(GOST_R_NO_PRIVATE_PART_OF_NON_EPHEMERAL_KEYPAIR),"no private part of non ephemeral keypair"},
-{ERR_REASON(GOST_R_PUBLIC_KEY_UNDEFINED) ,"public key undefined"},
-{ERR_REASON(GOST_R_RANDOM_GENERATOR_ERROR),"random generator error"},
-{ERR_REASON(GOST_R_RANDOM_GENERATOR_FAILURE),"random generator failure"},
-{ERR_REASON(GOST_R_RANDOM_NUMBER_GENERATOR_FAILED),"random number generator failed"},
-{ERR_REASON(GOST_R_SIGNATURE_MISMATCH) ,"signature mismatch"},
-{ERR_REASON(GOST_R_SIGNATURE_PARTS_GREATER_THAN_Q),"signature parts greater than q"},
-{ERR_REASON(GOST_R_UKM_NOT_SET) ,"ukm not set"},
-{ERR_REASON(GOST_R_UNSUPPORTED_CIPHER_CTL_COMMAND),"unsupported cipher ctl command"},
-{ERR_REASON(GOST_R_UNSUPPORTED_PARAMETER_SET),"unsupported parameter set"},
-{0,NULL}
- };
+# define ERR_FUNC(func) ERR_PACK(0,func,0)
+# define ERR_REASON(reason) ERR_PACK(0,0,reason)
+
+static ERR_STRING_DATA GOST_str_functs[] = {
+ {ERR_FUNC(GOST_F_DECODE_GOST_ALGOR_PARAMS), "DECODE_GOST_ALGOR_PARAMS"},
+ {ERR_FUNC(GOST_F_ENCODE_GOST_ALGOR_PARAMS), "ENCODE_GOST_ALGOR_PARAMS"},
+ {ERR_FUNC(GOST_F_FILL_GOST2001_PARAMS), "FILL_GOST2001_PARAMS"},
+ {ERR_FUNC(GOST_F_FILL_GOST94_PARAMS), "FILL_GOST94_PARAMS"},
+ {ERR_FUNC(GOST_F_GET_ENCRYPTION_PARAMS), "GET_ENCRYPTION_PARAMS"},
+ {ERR_FUNC(GOST_F_GOST2001_COMPUTE_PUBLIC), "GOST2001_COMPUTE_PUBLIC"},
+ {ERR_FUNC(GOST_F_GOST2001_DO_SIGN), "GOST2001_DO_SIGN"},
+ {ERR_FUNC(GOST_F_GOST2001_DO_VERIFY), "GOST2001_DO_VERIFY"},
+ {ERR_FUNC(GOST_F_GOST2001_KEYGEN), "GOST2001_KEYGEN"},
+ {ERR_FUNC(GOST_F_GOST89_GET_ASN1_PARAMETERS),
+ "GOST89_GET_ASN1_PARAMETERS"},
+ {ERR_FUNC(GOST_F_GOST89_SET_ASN1_PARAMETERS),
+ "GOST89_SET_ASN1_PARAMETERS"},
+ {ERR_FUNC(GOST_F_GOST94_COMPUTE_PUBLIC), "GOST94_COMPUTE_PUBLIC"},
+ {ERR_FUNC(GOST_F_GOST_CIPHER_CTL), "GOST_CIPHER_CTL"},
+ {ERR_FUNC(GOST_F_GOST_DO_SIGN), "GOST_DO_SIGN"},
+ {ERR_FUNC(GOST_F_GOST_DO_VERIFY), "GOST_DO_VERIFY"},
+ {ERR_FUNC(GOST_F_GOST_IMIT_CTRL), "GOST_IMIT_CTRL"},
+ {ERR_FUNC(GOST_F_GOST_IMIT_FINAL), "GOST_IMIT_FINAL"},
+ {ERR_FUNC(GOST_F_GOST_IMIT_UPDATE), "GOST_IMIT_UPDATE"},
+ {ERR_FUNC(GOST_F_PARAM_COPY_GOST01), "PARAM_COPY_GOST01"},
+ {ERR_FUNC(GOST_F_PARAM_COPY_GOST94), "PARAM_COPY_GOST94"},
+ {ERR_FUNC(GOST_F_PKEY_GOST01CP_DECRYPT), "PKEY_GOST01CP_DECRYPT"},
+ {ERR_FUNC(GOST_F_PKEY_GOST01CP_ENCRYPT), "PKEY_GOST01CP_ENCRYPT"},
+ {ERR_FUNC(GOST_F_PKEY_GOST01CP_KEYGEN), "PKEY_GOST01CP_KEYGEN"},
+ {ERR_FUNC(GOST_F_PKEY_GOST01_PARAMGEN), "PKEY_GOST01_PARAMGEN"},
+ {ERR_FUNC(GOST_F_PKEY_GOST2001_DERIVE), "PKEY_GOST2001_DERIVE"},
+ {ERR_FUNC(GOST_F_PKEY_GOST94CP_DECRYPT), "PKEY_GOST94CP_DECRYPT"},
+ {ERR_FUNC(GOST_F_PKEY_GOST94CP_ENCRYPT), "PKEY_GOST94CP_ENCRYPT"},
+ {ERR_FUNC(GOST_F_PKEY_GOST94CP_KEYGEN), "PKEY_GOST94CP_KEYGEN"},
+ {ERR_FUNC(GOST_F_PKEY_GOST94_PARAMGEN), "PKEY_GOST94_PARAMGEN"},
+ {ERR_FUNC(GOST_F_PKEY_GOST_CTRL), "PKEY_GOST_CTRL"},
+ {ERR_FUNC(GOST_F_PKEY_GOST_CTRL01_STR), "PKEY_GOST_CTRL01_STR"},
+ {ERR_FUNC(GOST_F_PKEY_GOST_CTRL94_STR), "PKEY_GOST_CTRL94_STR"},
+ {ERR_FUNC(GOST_F_PKEY_GOST_MAC_CTRL), "PKEY_GOST_MAC_CTRL"},
+ {ERR_FUNC(GOST_F_PKEY_GOST_MAC_CTRL_STR), "PKEY_GOST_MAC_CTRL_STR"},
+ {ERR_FUNC(GOST_F_PKEY_GOST_MAC_KEYGEN), "PKEY_GOST_MAC_KEYGEN"},
+ {ERR_FUNC(GOST_F_PRINT_GOST_01), "PRINT_GOST_01"},
+ {ERR_FUNC(GOST_F_PRIV_DECODE_GOST), "PRIV_DECODE_GOST"},
+ {ERR_FUNC(GOST_F_PUB_DECODE_GOST01), "PUB_DECODE_GOST01"},
+ {ERR_FUNC(GOST_F_PUB_DECODE_GOST94), "PUB_DECODE_GOST94"},
+ {ERR_FUNC(GOST_F_PUB_ENCODE_GOST01), "PUB_ENCODE_GOST01"},
+ {ERR_FUNC(GOST_F_UNPACK_CC_SIGNATURE), "UNPACK_CC_SIGNATURE"},
+ {ERR_FUNC(GOST_F_UNPACK_CP_SIGNATURE), "UNPACK_CP_SIGNATURE"},
+ {0, NULL}
+};
+
+static ERR_STRING_DATA GOST_str_reasons[] = {
+ {ERR_REASON(GOST_R_BAD_KEY_PARAMETERS_FORMAT),
+ "bad key parameters format"},
+ {ERR_REASON(GOST_R_BAD_PKEY_PARAMETERS_FORMAT),
+ "bad pkey parameters format"},
+ {ERR_REASON(GOST_R_CANNOT_PACK_EPHEMERAL_KEY),
+ "cannot pack ephemeral key"},
+ {ERR_REASON(GOST_R_CTRL_CALL_FAILED), "ctrl call failed"},
+ {ERR_REASON(GOST_R_ERROR_COMPUTING_SHARED_KEY),
+ "error computing shared key"},
+ {ERR_REASON(GOST_R_ERROR_PACKING_KEY_TRANSPORT_INFO),
+ "error packing key transport info"},
+ {ERR_REASON(GOST_R_ERROR_PARSING_KEY_TRANSPORT_INFO),
+ "error parsing key transport info"},
+ {ERR_REASON(GOST_R_INCOMPATIBLE_ALGORITHMS), "incompatible algorithms"},
+ {ERR_REASON(GOST_R_INCOMPATIBLE_PEER_KEY), "incompatible peer key"},
+ {ERR_REASON(GOST_R_INVALID_CIPHER_PARAMS), "invalid cipher params"},
+ {ERR_REASON(GOST_R_INVALID_CIPHER_PARAM_OID), "invalid cipher param oid"},
+ {ERR_REASON(GOST_R_INVALID_DIGEST_TYPE), "invalid digest type"},
+ {ERR_REASON(GOST_R_INVALID_GOST94_PARMSET), "invalid gost94 parmset"},
+ {ERR_REASON(GOST_R_INVALID_IV_LENGTH), "invalid iv length"},
+ {ERR_REASON(GOST_R_INVALID_MAC_KEY_LENGTH), "invalid mac key length"},
+ {ERR_REASON(GOST_R_INVALID_PARAMSET), "invalid paramset"},
+ {ERR_REASON(GOST_R_KEY_IS_NOT_INITALIZED), "key is not initalized"},
+ {ERR_REASON(GOST_R_KEY_IS_NOT_INITIALIZED), "key is not initialized"},
+ {ERR_REASON(GOST_R_KEY_PARAMETERS_MISSING), "key parameters missing"},
+ {ERR_REASON(GOST_R_MAC_KEY_NOT_SET), "mac key not set"},
+ {ERR_REASON(GOST_R_NO_PARAMETERS_SET), "no parameters set"},
+ {ERR_REASON(GOST_R_NO_PEER_KEY), "no peer key"},
+ {ERR_REASON(GOST_R_NO_PRIVATE_PART_OF_NON_EPHEMERAL_KEYPAIR),
+ "no private part of non ephemeral keypair"},
+ {ERR_REASON(GOST_R_PUBLIC_KEY_UNDEFINED), "public key undefined"},
+ {ERR_REASON(GOST_R_RANDOM_GENERATOR_ERROR), "random generator error"},
+ {ERR_REASON(GOST_R_RANDOM_GENERATOR_FAILURE), "random generator failure"},
+ {ERR_REASON(GOST_R_RANDOM_NUMBER_GENERATOR_FAILED),
+ "random number generator failed"},
+ {ERR_REASON(GOST_R_SIGNATURE_MISMATCH), "signature mismatch"},
+ {ERR_REASON(GOST_R_SIGNATURE_PARTS_GREATER_THAN_Q),
+ "signature parts greater than q"},
+ {ERR_REASON(GOST_R_UKM_NOT_SET), "ukm not set"},
+ {ERR_REASON(GOST_R_UNSUPPORTED_CIPHER_CTL_COMMAND),
+ "unsupported cipher ctl command"},
+ {ERR_REASON(GOST_R_UNSUPPORTED_PARAMETER_SET),
+ "unsupported parameter set"},
+ {0, NULL}
+};
#endif
#ifdef GOST_LIB_NAME
-static ERR_STRING_DATA GOST_lib_name[]=
- {
-{0 ,GOST_LIB_NAME},
-{0,NULL}
- };
+static ERR_STRING_DATA GOST_lib_name[] = {
+ {0, GOST_LIB_NAME},
+ {0, NULL}
+};
#endif
-
-static int GOST_lib_error_code=0;
-static int GOST_error_init=1;
+static int GOST_lib_error_code = 0;
+static int GOST_error_init = 1;
void ERR_load_GOST_strings(void)
- {
- if (GOST_lib_error_code == 0)
- GOST_lib_error_code=ERR_get_next_error_library();
+{
+ if (GOST_lib_error_code == 0)
+ GOST_lib_error_code = ERR_get_next_error_library();
- if (GOST_error_init)
- {
- GOST_error_init=0;
+ if (GOST_error_init) {
+ GOST_error_init = 0;
#ifndef OPENSSL_NO_ERR
- ERR_load_strings(GOST_lib_error_code,GOST_str_functs);
- ERR_load_strings(GOST_lib_error_code,GOST_str_reasons);
+ ERR_load_strings(GOST_lib_error_code, GOST_str_functs);
+ ERR_load_strings(GOST_lib_error_code, GOST_str_reasons);
#endif
#ifdef GOST_LIB_NAME
- GOST_lib_name->error = ERR_PACK(GOST_lib_error_code,0,0);
- ERR_load_strings(0,GOST_lib_name);
+ GOST_lib_name->error = ERR_PACK(GOST_lib_error_code, 0, 0);
+ ERR_load_strings(0, GOST_lib_name);
#endif
- }
- }
+ }
+}
void ERR_unload_GOST_strings(void)
- {
- if (GOST_error_init == 0)
- {
+{
+ if (GOST_error_init == 0) {
#ifndef OPENSSL_NO_ERR
- ERR_unload_strings(GOST_lib_error_code,GOST_str_functs);
- ERR_unload_strings(GOST_lib_error_code,GOST_str_reasons);
+ ERR_unload_strings(GOST_lib_error_code, GOST_str_functs);
+ ERR_unload_strings(GOST_lib_error_code, GOST_str_reasons);
#endif
#ifdef GOST_LIB_NAME
- ERR_unload_strings(0,GOST_lib_name);
+ ERR_unload_strings(0, GOST_lib_name);
#endif
- GOST_error_init=1;
- }
- }
+ GOST_error_init = 1;
+ }
+}
void ERR_GOST_error(int function, int reason, char *file, int line)
- {
- if (GOST_lib_error_code == 0)
- GOST_lib_error_code=ERR_get_next_error_library();
- ERR_PUT_error(GOST_lib_error_code,function,reason,file,line);
- }
+{
+ if (GOST_lib_error_code == 0)
+ GOST_lib_error_code = ERR_get_next_error_library();
+ ERR_PUT_error(GOST_lib_error_code, function, reason, file, line);
+}
diff --git a/engines/ccgost/e_gost_err.h b/engines/ccgost/e_gost_err.h
index 3f17d90ac6..e55ebf8b34 100644
--- a/engines/ccgost/e_gost_err.h
+++ b/engines/ccgost/e_gost_err.h
@@ -6,7 +6,7 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
@@ -53,101 +53,102 @@
*/
#ifndef HEADER_GOST_ERR_H
-#define HEADER_GOST_ERR_H
+# define HEADER_GOST_ERR_H
#ifdef __cplusplus
extern "C" {
#endif
/* BEGIN ERROR CODES */
-/* The following lines are auto generated by the script mkerr.pl. Any changes
+/*
+ * The following lines are auto generated by the script mkerr.pl. Any changes
* made after this point may be overwritten when the script is next run.
*/
void ERR_load_GOST_strings(void);
void ERR_unload_GOST_strings(void);
void ERR_GOST_error(int function, int reason, char *file, int line);
-#define GOSTerr(f,r) ERR_GOST_error((f),(r),__FILE__,__LINE__)
+# define GOSTerr(f,r) ERR_GOST_error((f),(r),__FILE__,__LINE__)
/* Error codes for the GOST functions. */
/* Function codes. */
-#define GOST_F_DECODE_GOST_ALGOR_PARAMS 99
-#define GOST_F_ENCODE_GOST_ALGOR_PARAMS 100
-#define GOST_F_FILL_GOST2001_PARAMS 101
-#define GOST_F_FILL_GOST94_PARAMS 102
-#define GOST_F_GET_ENCRYPTION_PARAMS 103
-#define GOST_F_GOST2001_COMPUTE_PUBLIC 104
-#define GOST_F_GOST2001_DO_SIGN 105
-#define GOST_F_GOST2001_DO_VERIFY 106
-#define GOST_F_GOST2001_KEYGEN 107
-#define GOST_F_GOST89_GET_ASN1_PARAMETERS 108
-#define GOST_F_GOST89_SET_ASN1_PARAMETERS 109
-#define GOST_F_GOST94_COMPUTE_PUBLIC 110
-#define GOST_F_GOST_CIPHER_CTL 111
-#define GOST_F_GOST_DO_SIGN 112
-#define GOST_F_GOST_DO_VERIFY 113
-#define GOST_F_GOST_IMIT_CTRL 114
-#define GOST_F_GOST_IMIT_FINAL 140
-#define GOST_F_GOST_IMIT_UPDATE 115
-#define GOST_F_PARAM_COPY_GOST01 116
-#define GOST_F_PARAM_COPY_GOST94 117
-#define GOST_F_PKEY_GOST01CP_DECRYPT 118
-#define GOST_F_PKEY_GOST01CP_ENCRYPT 119
-#define GOST_F_PKEY_GOST01CP_KEYGEN 120
-#define GOST_F_PKEY_GOST01_PARAMGEN 138
-#define GOST_F_PKEY_GOST2001_DERIVE 121
-#define GOST_F_PKEY_GOST94CP_DECRYPT 122
-#define GOST_F_PKEY_GOST94CP_ENCRYPT 123
-#define GOST_F_PKEY_GOST94CP_KEYGEN 124
-#define GOST_F_PKEY_GOST94_PARAMGEN 139
-#define GOST_F_PKEY_GOST_CTRL 125
-#define GOST_F_PKEY_GOST_CTRL01_STR 126
-#define GOST_F_PKEY_GOST_CTRL94_STR 127
-#define GOST_F_PKEY_GOST_MAC_CTRL 128
-#define GOST_F_PKEY_GOST_MAC_CTRL_STR 129
-#define GOST_F_PKEY_GOST_MAC_KEYGEN 130
-#define GOST_F_PRINT_GOST_01 131
-#define GOST_F_PRIV_DECODE_GOST 132
-#define GOST_F_PUB_DECODE_GOST01 133
-#define GOST_F_PUB_DECODE_GOST94 134
-#define GOST_F_PUB_ENCODE_GOST01 135
-#define GOST_F_PUB_ENCODE_GOST94 141
-#define GOST_F_UNPACK_CC_SIGNATURE 136
-#define GOST_F_UNPACK_CP_SIGNATURE 137
+# define GOST_F_DECODE_GOST_ALGOR_PARAMS 99
+# define GOST_F_ENCODE_GOST_ALGOR_PARAMS 100
+# define GOST_F_FILL_GOST2001_PARAMS 101
+# define GOST_F_FILL_GOST94_PARAMS 102
+# define GOST_F_GET_ENCRYPTION_PARAMS 103
+# define GOST_F_GOST2001_COMPUTE_PUBLIC 104
+# define GOST_F_GOST2001_DO_SIGN 105
+# define GOST_F_GOST2001_DO_VERIFY 106
+# define GOST_F_GOST2001_KEYGEN 107
+# define GOST_F_GOST89_GET_ASN1_PARAMETERS 108
+# define GOST_F_GOST89_SET_ASN1_PARAMETERS 109
+# define GOST_F_GOST94_COMPUTE_PUBLIC 110
+# define GOST_F_GOST_CIPHER_CTL 111
+# define GOST_F_GOST_DO_SIGN 112
+# define GOST_F_GOST_DO_VERIFY 113
+# define GOST_F_GOST_IMIT_CTRL 114
+# define GOST_F_GOST_IMIT_FINAL 140
+# define GOST_F_GOST_IMIT_UPDATE 115
+# define GOST_F_PARAM_COPY_GOST01 116
+# define GOST_F_PARAM_COPY_GOST94 117
+# define GOST_F_PKEY_GOST01CP_DECRYPT 118
+# define GOST_F_PKEY_GOST01CP_ENCRYPT 119
+# define GOST_F_PKEY_GOST01CP_KEYGEN 120
+# define GOST_F_PKEY_GOST01_PARAMGEN 138
+# define GOST_F_PKEY_GOST2001_DERIVE 121
+# define GOST_F_PKEY_GOST94CP_DECRYPT 122
+# define GOST_F_PKEY_GOST94CP_ENCRYPT 123
+# define GOST_F_PKEY_GOST94CP_KEYGEN 124
+# define GOST_F_PKEY_GOST94_PARAMGEN 139
+# define GOST_F_PKEY_GOST_CTRL 125
+# define GOST_F_PKEY_GOST_CTRL01_STR 126
+# define GOST_F_PKEY_GOST_CTRL94_STR 127
+# define GOST_F_PKEY_GOST_MAC_CTRL 128
+# define GOST_F_PKEY_GOST_MAC_CTRL_STR 129
+# define GOST_F_PKEY_GOST_MAC_KEYGEN 130
+# define GOST_F_PRINT_GOST_01 131
+# define GOST_F_PRIV_DECODE_GOST 132
+# define GOST_F_PUB_DECODE_GOST01 133
+# define GOST_F_PUB_DECODE_GOST94 134
+# define GOST_F_PUB_ENCODE_GOST01 135
+# define GOST_F_PUB_ENCODE_GOST94 141
+# define GOST_F_UNPACK_CC_SIGNATURE 136
+# define GOST_F_UNPACK_CP_SIGNATURE 137
/* Reason codes. */
-#define GOST_R_BAD_KEY_PARAMETERS_FORMAT 99
-#define GOST_R_BAD_PKEY_PARAMETERS_FORMAT 100
-#define GOST_R_CANNOT_PACK_EPHEMERAL_KEY 101
-#define GOST_R_CTRL_CALL_FAILED 132
-#define GOST_R_ERROR_COMPUTING_SHARED_KEY 102
-#define GOST_R_ERROR_PACKING_KEY_TRANSPORT_INFO 103
-#define GOST_R_ERROR_PARSING_KEY_TRANSPORT_INFO 104
-#define GOST_R_INCOMPATIBLE_ALGORITHMS 105
-#define GOST_R_INCOMPATIBLE_PEER_KEY 131
-#define GOST_R_INVALID_CIPHER_PARAMS 106
-#define GOST_R_INVALID_CIPHER_PARAM_OID 107
-#define GOST_R_INVALID_DIGEST_TYPE 108
-#define GOST_R_INVALID_GOST94_PARMSET 109
-#define GOST_R_INVALID_IV_LENGTH 110
-#define GOST_R_INVALID_MAC_KEY_LENGTH 111
-#define GOST_R_INVALID_PARAMSET 112
-#define GOST_R_KEY_IS_NOT_INITALIZED 113
-#define GOST_R_KEY_IS_NOT_INITIALIZED 114
-#define GOST_R_KEY_PARAMETERS_MISSING 115
-#define GOST_R_MAC_KEY_NOT_SET 116
-#define GOST_R_NO_PARAMETERS_SET 119
-#define GOST_R_NO_PEER_KEY 120
-#define GOST_R_NO_PRIVATE_PART_OF_NON_EPHEMERAL_KEYPAIR 121
-#define GOST_R_PUBLIC_KEY_UNDEFINED 122
-#define GOST_R_RANDOM_GENERATOR_ERROR 123
-#define GOST_R_RANDOM_GENERATOR_FAILURE 124
-#define GOST_R_RANDOM_NUMBER_GENERATOR_FAILED 125
-#define GOST_R_SIGNATURE_MISMATCH 126
-#define GOST_R_SIGNATURE_PARTS_GREATER_THAN_Q 127
-#define GOST_R_UKM_NOT_SET 128
-#define GOST_R_UNSUPPORTED_CIPHER_CTL_COMMAND 129
-#define GOST_R_UNSUPPORTED_PARAMETER_SET 130
+# define GOST_R_BAD_KEY_PARAMETERS_FORMAT 99
+# define GOST_R_BAD_PKEY_PARAMETERS_FORMAT 100
+# define GOST_R_CANNOT_PACK_EPHEMERAL_KEY 101
+# define GOST_R_CTRL_CALL_FAILED 132
+# define GOST_R_ERROR_COMPUTING_SHARED_KEY 102
+# define GOST_R_ERROR_PACKING_KEY_TRANSPORT_INFO 103
+# define GOST_R_ERROR_PARSING_KEY_TRANSPORT_INFO 104
+# define GOST_R_INCOMPATIBLE_ALGORITHMS 105
+# define GOST_R_INCOMPATIBLE_PEER_KEY 131
+# define GOST_R_INVALID_CIPHER_PARAMS 106
+# define GOST_R_INVALID_CIPHER_PARAM_OID 107
+# define GOST_R_INVALID_DIGEST_TYPE 108
+# define GOST_R_INVALID_GOST94_PARMSET 109
+# define GOST_R_INVALID_IV_LENGTH 110
+# define GOST_R_INVALID_MAC_KEY_LENGTH 111
+# define GOST_R_INVALID_PARAMSET 112
+# define GOST_R_KEY_IS_NOT_INITALIZED 113
+# define GOST_R_KEY_IS_NOT_INITIALIZED 114
+# define GOST_R_KEY_PARAMETERS_MISSING 115
+# define GOST_R_MAC_KEY_NOT_SET 116
+# define GOST_R_NO_PARAMETERS_SET 119
+# define GOST_R_NO_PEER_KEY 120
+# define GOST_R_NO_PRIVATE_PART_OF_NON_EPHEMERAL_KEYPAIR 121
+# define GOST_R_PUBLIC_KEY_UNDEFINED 122
+# define GOST_R_RANDOM_GENERATOR_ERROR 123
+# define GOST_R_RANDOM_GENERATOR_FAILURE 124
+# define GOST_R_RANDOM_NUMBER_GENERATOR_FAILED 125
+# define GOST_R_SIGNATURE_MISMATCH 126
+# define GOST_R_SIGNATURE_PARTS_GREATER_THAN_Q 127
+# define GOST_R_UKM_NOT_SET 128
+# define GOST_R_UNSUPPORTED_CIPHER_CTL_COMMAND 129
+# define GOST_R_UNSUPPORTED_PARAMETER_SET 130
#ifdef __cplusplus
}
diff --git a/engines/ccgost/gost2001.c b/engines/ccgost/gost2001.c
index e8bbfdfc06..b3eec8a19f 100644
--- a/engines/ccgost/gost2001.c
+++ b/engines/ccgost/gost2001.c
@@ -3,7 +3,7 @@
* Copyright (c) 2005-2006 Cryptocom LTD *
* This file is distributed under the same license as OpenSSL *
* *
- * Implementation of GOST R 34.10-2001 *
+ * Implementation of GOST R 34.10-2001 *
* Requires OpenSSL 0.9.9 for compilation *
**********************************************************************/
#include "gost_lcl.h"
@@ -14,13 +14,14 @@
#include <openssl/err.h>
#include "e_gost_err.h"
#ifdef DEBUG_SIGN
-extern
-void dump_signature(const char *message,const unsigned char *buffer,size_t len);
+extern
+void dump_signature(const char *message, const unsigned char *buffer,
+ size_t len);
void dump_dsa_sig(const char *message, DSA_SIG *sig);
#else
-#define dump_signature(a,b,c)
-#define dump_dsa_sig(a,b)
+# define dump_signature(a,b,c)
+# define dump_dsa_sig(a,b)
#endif
/*
@@ -30,314 +31,309 @@ void dump_dsa_sig(const char *message, DSA_SIG *sig);
*
* Also fils DSA->q field with copy of EC_GROUP order field to make
* DSA_size function work
- */
+ */
int fill_GOST2001_params(EC_KEY *eckey, int nid)
- {
- R3410_2001_params *params = R3410_2001_paramset;
- EC_GROUP *grp=NULL;
- BIGNUM *p=NULL,*q=NULL,*a=NULL,*b=NULL,*x=NULL,*y=NULL;
- EC_POINT *P=NULL;
- BN_CTX *ctx=BN_CTX_new();
- int ok=0;
-
- BN_CTX_start(ctx);
- p=BN_CTX_get(ctx);
- a=BN_CTX_get(ctx);
- b=BN_CTX_get(ctx);
- x=BN_CTX_get(ctx);
- y=BN_CTX_get(ctx);
- q=BN_CTX_get(ctx);
- while (params->nid!=NID_undef && params->nid != nid) params++;
- if (params->nid == NID_undef)
- {
- GOSTerr(GOST_F_FILL_GOST2001_PARAMS,GOST_R_UNSUPPORTED_PARAMETER_SET);
- goto err;
- }
- BN_hex2bn(&p,params->p);
- BN_hex2bn(&a,params->a);
- BN_hex2bn(&b,params->b);
-
- grp = EC_GROUP_new_curve_GFp(p,a,b,ctx);
+{
+ R3410_2001_params *params = R3410_2001_paramset;
+ EC_GROUP *grp = NULL;
+ BIGNUM *p = NULL, *q = NULL, *a = NULL, *b = NULL, *x = NULL, *y = NULL;
+ EC_POINT *P = NULL;
+ BN_CTX *ctx = BN_CTX_new();
+ int ok = 0;
- P = EC_POINT_new(grp);
+ BN_CTX_start(ctx);
+ p = BN_CTX_get(ctx);
+ a = BN_CTX_get(ctx);
+ b = BN_CTX_get(ctx);
+ x = BN_CTX_get(ctx);
+ y = BN_CTX_get(ctx);
+ q = BN_CTX_get(ctx);
+ while (params->nid != NID_undef && params->nid != nid)
+ params++;
+ if (params->nid == NID_undef) {
+ GOSTerr(GOST_F_FILL_GOST2001_PARAMS,
+ GOST_R_UNSUPPORTED_PARAMETER_SET);
+ goto err;
+ }
+ BN_hex2bn(&p, params->p);
+ BN_hex2bn(&a, params->a);
+ BN_hex2bn(&b, params->b);
- BN_hex2bn(&x,params->x);
- BN_hex2bn(&y,params->y);
- EC_POINT_set_affine_coordinates_GFp(grp,P,x,y,ctx);
- BN_hex2bn(&q,params->q);
-#ifdef DEBUG_KEYS
- fprintf(stderr,"Set params index %d oid %s\nq=",
- (params-R3410_2001_paramset),OBJ_nid2sn(params->nid));
- BN_print_fp(stderr,q);
- fprintf(stderr,"\n");
-#endif
+ grp = EC_GROUP_new_curve_GFp(p, a, b, ctx);
+
+ P = EC_POINT_new(grp);
- EC_GROUP_set_generator(grp,P,q,NULL);
- EC_GROUP_set_curve_name(grp,params->nid);
+ BN_hex2bn(&x, params->x);
+ BN_hex2bn(&y, params->y);
+ EC_POINT_set_affine_coordinates_GFp(grp, P, x, y, ctx);
+ BN_hex2bn(&q, params->q);
+#ifdef DEBUG_KEYS
+ fprintf(stderr, "Set params index %d oid %s\nq=",
+ (params - R3410_2001_paramset), OBJ_nid2sn(params->nid));
+ BN_print_fp(stderr, q);
+ fprintf(stderr, "\n");
+#endif
- EC_KEY_set_group(eckey,grp);
- ok=1;
- err:
- EC_POINT_free(P);
- EC_GROUP_free(grp);
- BN_CTX_end(ctx);
- BN_CTX_free(ctx);
- return ok;
- }
+ EC_GROUP_set_generator(grp, P, q, NULL);
+ EC_GROUP_set_curve_name(grp, params->nid);
+ EC_KEY_set_group(eckey, grp);
+ ok = 1;
+ err:
+ EC_POINT_free(P);
+ EC_GROUP_free(grp);
+ BN_CTX_end(ctx);
+ BN_CTX_free(ctx);
+ return ok;
+}
/*
- * Computes gost2001 signature as DSA_SIG structure
+ * Computes gost2001 signature as DSA_SIG structure
*
*
- */
-DSA_SIG *gost2001_do_sign(const unsigned char *dgst,int dlen, EC_KEY *eckey)
- {
- DSA_SIG *newsig = NULL;
- BIGNUM *md = hashsum2bn(dgst);
- BIGNUM *order = NULL;
- const EC_GROUP *group;
- const BIGNUM *priv_key;
- BIGNUM *r=NULL,*s=NULL,*X=NULL,*tmp=NULL,*tmp2=NULL, *k=NULL,*e=NULL;
- EC_POINT *C=NULL;
- BN_CTX *ctx = BN_CTX_new();
- BN_CTX_start(ctx);
- OPENSSL_assert(dlen==32);
- newsig=DSA_SIG_new();
- if (!newsig)
- {
- GOSTerr(GOST_F_GOST2001_DO_SIGN,ERR_R_MALLOC_FAILURE);
- goto err;
- }
- group = EC_KEY_get0_group(eckey);
- order=BN_CTX_get(ctx);
- EC_GROUP_get_order(group,order,ctx);
- priv_key = EC_KEY_get0_private_key(eckey);
- e = BN_CTX_get(ctx);
- BN_mod(e,md,order,ctx);
+ */
+DSA_SIG *gost2001_do_sign(const unsigned char *dgst, int dlen, EC_KEY *eckey)
+{
+ DSA_SIG *newsig = NULL;
+ BIGNUM *md = hashsum2bn(dgst);
+ BIGNUM *order = NULL;
+ const EC_GROUP *group;
+ const BIGNUM *priv_key;
+ BIGNUM *r = NULL, *s = NULL, *X = NULL, *tmp = NULL, *tmp2 = NULL, *k =
+ NULL, *e = NULL;
+ EC_POINT *C = NULL;
+ BN_CTX *ctx = BN_CTX_new();
+ BN_CTX_start(ctx);
+ OPENSSL_assert(dlen == 32);
+ newsig = DSA_SIG_new();
+ if (!newsig) {
+ GOSTerr(GOST_F_GOST2001_DO_SIGN, ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ group = EC_KEY_get0_group(eckey);
+ order = BN_CTX_get(ctx);
+ EC_GROUP_get_order(group, order, ctx);
+ priv_key = EC_KEY_get0_private_key(eckey);
+ e = BN_CTX_get(ctx);
+ BN_mod(e, md, order, ctx);
#ifdef DEBUG_SIGN
- fprintf(stderr,"digest as bignum=");
- BN_print_fp(stderr,md);
- fprintf(stderr,"\ndigest mod q=");
- BN_print_fp(stderr,e);
- fprintf(stderr,"\n");
-#endif
- if (BN_is_zero(e))
- {
- BN_one(e);
- }
- k =BN_CTX_get(ctx);
- C=EC_POINT_new(group);
- do
- {
- do
- {
- if (!BN_rand_range(k,order))
- {
- GOSTerr(GOST_F_GOST2001_DO_SIGN,GOST_R_RANDOM_NUMBER_GENERATOR_FAILED);
- DSA_SIG_free(newsig);
- newsig = NULL;
- goto err;
- }
- if (!EC_POINT_mul(group,C,k,NULL,NULL,ctx))
- {
- GOSTerr(GOST_F_GOST2001_DO_SIGN,ERR_R_EC_LIB);
- DSA_SIG_free(newsig);
- newsig = NULL;
- goto err;
- }
- if (!X) X=BN_CTX_get(ctx);
- if (!EC_POINT_get_affine_coordinates_GFp(group,C,X,NULL,ctx))
- {
- GOSTerr(GOST_F_GOST2001_DO_SIGN,ERR_R_EC_LIB);
- DSA_SIG_free(newsig);
- newsig = NULL;
- goto err;
- }
- if (!r) r=BN_CTX_get(ctx);
- BN_nnmod(r,X,order,ctx);
- }
- while (BN_is_zero(r));
- /* s = (r*priv_key+k*e) mod order */
- if (!tmp) tmp = BN_CTX_get(ctx);
- BN_mod_mul(tmp,priv_key,r,order,ctx);
- if (!tmp2) tmp2 = BN_CTX_get(ctx);
- BN_mod_mul(tmp2,k,e,order,ctx);
- if (!s) s=BN_CTX_get(ctx);
- BN_mod_add(s,tmp,tmp2,order,ctx);
- }
- while (BN_is_zero(s));
+ fprintf(stderr, "digest as bignum=");
+ BN_print_f