aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/ec
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2002-07-14 16:54:31 +0000
committerBodo Möller <bodo@openssl.org>2002-07-14 16:54:31 +0000
commit5dbd3efce784cb5621de8402430eda23d1762568 (patch)
treeb9fec0675747eaab2d8a5539d3def0c16aabad3d /crypto/ec
parent876811e2af12fe7f5b05104ad2187516cff2aee2 (diff)
downloadopenssl-5dbd3efce784cb5621de8402430eda23d1762568.tar.gz
Replace 'ecdsaparam' commandline utility by 'ecparam'
(the same keys can be used for ECC schemes other than ECDSA) and add some new options. Similarly, use string "EC PARAMETERS" instead of "ECDSA PARAMETERS" in 'PEM' format. Fix ec_asn1.c (take into account the desired conversion form). 'make update'. Submitted by: Nils Larsch
Diffstat (limited to 'crypto/ec')
-rw-r--r--crypto/ec/ec.h8
-rw-r--r--crypto/ec/ec_asn1.c5
2 files changed, 13 insertions, 0 deletions
diff --git a/crypto/ec/ec.h b/crypto/ec/ec.h
index 85883e2ffd..e17fc20dd4 100644
--- a/crypto/ec/ec.h
+++ b/crypto/ec/ec.h
@@ -259,6 +259,14 @@ int i2d_ECParameters(const EC_GROUP *, unsigned char **out);
EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len);
int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out);
+#define d2i_ECPKParameters_bio(bp,x) (EC_GROUP *)ASN1_d2i_bio(NULL, \
+ (char *(*)())d2i_ECPKParameters,(bp),(unsigned char **)(x))
+#define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio(i2d_ECPKParameters,(bp), \
+ (unsigned char *)(x))
+#define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \
+ (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x))
+#define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \
+ (unsigned char *)(x))
#ifndef OPENSSL_NO_BIO
int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off);
diff --git a/crypto/ec/ec_asn1.c b/crypto/ec/ec_asn1.c
index 5a97e9f70a..009896b558 100644
--- a/crypto/ec/ec_asn1.c
+++ b/crypto/ec/ec_asn1.c
@@ -700,6 +700,11 @@ static EC_GROUP *ec_asn1_parameters2group(const ECPARAMETERS *params)
ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, ERR_R_EC_LIB);
goto err;
}
+
+ /* set the point conversion form */
+ EC_GROUP_set_point_conversion_form(ret, (point_conversion_form_t)
+ (params->base->data[0] & ~0x01));
+
if (!EC_GROUP_set_generator(ret, point, a, b))
{
ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, ERR_R_EC_LIB);