X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fasn1%2Fd2i_r_pu.c;h=9e5d41cf5318e18b1d0c12e7558f773aeb05c258;hb=9ef9e78520eba0fb3d92b581dc4f895a5f464387;hp=778b792b1e7ee1b12726edabebdfa8eac37696b4;hpb=58964a492275ca9a59a0cd9c8155cb2491b4b909;p=oweals%2Fopenssl.git diff --git a/crypto/asn1/d2i_r_pu.c b/crypto/asn1/d2i_r_pu.c index 778b792b1e..9e5d41cf53 100644 --- a/crypto/asn1/d2i_r_pu.c +++ b/crypto/asn1/d2i_r_pu.c @@ -56,22 +56,19 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include "cryptlib.h" -#include "bn.h" -#include "rsa.h" -#include "objects.h" -#include "asn1_mac.h" +#include +#include +#include +#include -/* - * ASN1err(ASN1_F_D2I_RSAPUBLICKEY,ASN1_R_LENGTH_MISMATCH); - * ASN1err(ASN1_F_I2D_RSAPUBLICKEY,ASN1_R_UNKNOWN_ATTRIBUTE_TYPE); - */ +#ifndef NO_NEG_PUBKEY_BUG +#define d2i_ASN1_INTEGER d2i_ASN1_UINTEGER +#endif -RSA *d2i_RSAPublicKey(a,pp,length) -RSA **a; -unsigned char **pp; -long length; +RSA *d2i_RSAPublicKey(RSA **a, unsigned char **pp, long length) { int i=ASN1_R_PARSING; ASN1_INTEGER *bs=NULL; @@ -84,7 +81,7 @@ long length; M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER); if ((ret->e=BN_bin2bn(bs->data,bs->length,ret->e)) == NULL) goto err_bn; - ASN1_INTEGER_free(bs); + M_ASN1_INTEGER_free(bs); bs=NULL; M_ASN1_D2I_Finish_2(a); @@ -94,7 +91,13 @@ err_bn: err: ASN1err(ASN1_F_D2I_RSAPUBLICKEY,i); if ((ret != NULL) && ((a == NULL) || (*a != ret))) RSA_free(ret); - if (bs != NULL) ASN1_INTEGER_free(bs); + if (bs != NULL) M_ASN1_INTEGER_free(bs); return(NULL); } +#else /* !NO_RSA */ + +# if PEDANTIC +static void *dummy=&dummy; +# endif +#endif