Mercurial > trustbridge
view common/certhelp.c @ 359:f6ce186cebc2
If DO_RELEASE_BUILD is set use pubkey-release and test with it
This currently fails because polarssl rejects keys with
a public exponent larger then 64 bit.
With the following patch all tests pass. But this
currently awaits upstream comment.
https://polarssl.org/discussions/bug-report-issues/rsa-keys-with-large-public-exponents-are-rejected
--- rsa.c.orig 2014-04-10 17:22:32.727290031 +0200
+++ rsa.c 2014-04-10 17:22:38.847410225 +0200
@@ -154,7 +154,7 @@
return( POLARSSL_ERR_RSA_KEY_CHECK_FAILED );
if( mpi_msb( &ctx->E ) < 2 ||
- mpi_msb( &ctx->E ) > 64 )
+ mpi_msb( &ctx->E ) > POLARSSL_MPI_MAX_BITS )
return( POLARSSL_ERR_RSA_KEY_CHECK_FAILED );
return( 0 );
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Thu, 10 Apr 2014 17:50:44 +0200 |
parents | 81a205fc651e |
children | 17e1c8f37d72 |
line wrap: on
line source
#include <stdlib.h> #include "certhelp.h" #include "logging.h" #include "errorcodes.h" #include "strhelp.h" char * get_oid_valstr(x509_name *namebuf, unsigned char *oid) { char *str = NULL; size_t oid_len = strlen((char *)oid); while ( namebuf != NULL ) { if ( (namebuf->oid.len == oid_len) && (memcmp(namebuf->oid.p, oid, oid_len) == 0) ) { str = xstrndup((char *)namebuf->val.p, namebuf->val.len); break; } namebuf = namebuf->next; } return str; } char * x509_parse_subject(unsigned char *derdata, size_t derlen, unsigned char *oid) { x509_crt chain; char *str; x509_crt_init(&chain); if (x509_crt_parse_der(&chain, derdata, derlen) != 0) { ERRORPRINTF("Could not parse certificate!\n"); return NULL; } else { str = get_oid_valstr(&(chain.subject), oid); x509_crt_free(&chain); } return str; }