summaryrefslogtreecommitdiffstats
path: root/libtomcrypt/pk/asn1/der/sequence
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2010-07-07 10:40:37 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-07-07 10:41:04 +0200
commit115f165b6e3bb74f45e13a65c5f4f82f28664a2c (patch)
treeec55b63c736b5bef6061202c8bd31b08796fa2dc /libtomcrypt/pk/asn1/der/sequence
parent58a20b797e5a987fc8f7c5bea3be24d754908bf5 (diff)
downloadcryptodev-linux-115f165b6e3bb74f45e13a65c5f4f82f28664a2c.tar.gz
cryptodev-linux-115f165b6e3bb74f45e13a65c5f4f82f28664a2c.tar.xz
cryptodev-linux-115f165b6e3bb74f45e13a65c5f4f82f28664a2c.zip
Added a modified libtomcrypt with DSA and RSA algorithms.
Diffstat (limited to 'libtomcrypt/pk/asn1/der/sequence')
-rw-r--r--libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c13
-rw-r--r--libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c4
2 files changed, 12 insertions, 5 deletions
diff --git a/libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c b/libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c
index 607d5eb..2e72dbd 100644
--- a/libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c
+++ b/libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c
@@ -122,17 +122,24 @@ int der_decode_sequence_flexi(const unsigned char *in, unsigned long *inlen, ltc
/* init field */
l->type = LTC_ASN1_INTEGER;
l->size = 1;
- if ((err = mp_init(&l->data)) != CRYPT_OK) {
+
+ l->data = XMALLOC(sizeof(mp_int));
+ if (l->data == NULL) {
+ err = CRYPT_MEM;
+ goto error;
+ }
+
+ if ((err = mp_init((mp_int_t)l->data)) != CRYPT_OK) {
goto error;
}
/* decode field */
- if ((err = der_decode_integer(in, *inlen, l->data)) != CRYPT_OK) {
+ if ((err = der_decode_integer(in, *inlen, (mp_int_t)l->data)) != CRYPT_OK) {
goto error;
}
/* calc length of object */
- if ((err = der_length_integer(l->data, &len)) != CRYPT_OK) {
+ if ((err = der_length_integer((mp_int_t)l->data, &len)) != CRYPT_OK) {
goto error;
}
break;
diff --git a/libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c b/libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c
index a6769b3..a0e0d2d 100644
--- a/libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c
+++ b/libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c
@@ -47,13 +47,13 @@ void der_sequence_free(ltc_asn1_list *in)
case LTC_ASN1_SET:
case LTC_ASN1_SETOF:
case LTC_ASN1_SEQUENCE: break;
- case LTC_ASN1_INTEGER : if (in->data != NULL) { mp_clear(in->data); } break;
+ case LTC_ASN1_INTEGER : if (in->data != NULL) { mp_clear(in->data); XFREE(in->data); } break;
default : if (in->data != NULL) { XFREE(in->data); }
}
/* move to next and free current */
l = in->next;
- free(in);
+ XFREE(in);
in = l;
}
}