summaryrefslogtreecommitdiff
path: root/lib/x509/key_decode.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-05-22 16:27:27 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-05-22 16:27:27 +0200
commit5892d0bf34761686c1078d8a251210fadef34d18 (patch)
tree012d5843fad3cae288854b9f9c24bd994742a078 /lib/x509/key_decode.c
parentf91665debbb2b044ef95b0676a41cbf9c8ba2e79 (diff)
downloadgnutls-5892d0bf34761686c1078d8a251210fadef34d18.tar.gz
corrected ECC public key encoding/decoding.
Diffstat (limited to 'lib/x509/key_decode.c')
-rw-r--r--lib/x509/key_decode.c38
1 files changed, 3 insertions, 35 deletions
diff --git a/lib/x509/key_decode.c b/lib/x509/key_decode.c
index d0bbce1b45..e7ec3aecb8 100644
--- a/lib/x509/key_decode.c
+++ b/lib/x509/key_decode.c
@@ -104,41 +104,9 @@ _gnutls_x509_read_rsa_pubkey (opaque * der, int dersize, gnutls_pk_params_st * p
int
_gnutls_x509_read_ecc_pubkey (opaque * der, int dersize, gnutls_pk_params_st * params)
{
-#if 0
- int ret;
- ASN1_TYPE spk = ASN1_TYPE_EMPTY;
- gnutls_datum_t octet;
-
- if ((ret = asn1_create_element
- (_gnutls_get_gnutls_asn (), "GNUTLS.ECPoint", &spk))
- != ASN1_SUCCESS)
- {
- gnutls_assert ();
- return _gnutls_asn2err (ret);
- }
-
- ret = asn1_der_decoding (&spk, der, dersize, NULL);
- if (ret != ASN1_SUCCESS)
- {
- gnutls_assert ();
- asn1_delete_structure (&spk);
- return _gnutls_asn2err (ret);
- }
-
-
- if ((ret = _gnutls_x509_read_value (spk, "", &octet, 0)) < 0)
- {
- gnutls_assert ();
- asn1_delete_structure (&spk);
- return GNUTLS_E_ASN1_GENERIC_ERROR;
- }
-
- ret = _gnutls_ecc_ansi_x963_import (octet.data, octet.size, &params->params[5],
- &params->params[6]);
- _gnutls_free_datum(&octet);
-
- return ret;
-#endif
+/* Eventhough RFC5480 defines the public key to be an ECPoint (i.e. OCTET STRING),
+ * it is actually copied in raw there. Why do they use ASN.1 anyway?
+ */
return _gnutls_ecc_ansi_x963_import (der, dersize, &params->params[5],
&params->params[6]);
}