Commit 7081f3bd authored by Richard Levitte's avatar Richard Levitte
Browse files

Constify the RSA parts of the ASN.1 library. Note some ugly casts

that are needed in the ASN.1 macros.  Hopefully, we can get rid of
those in an elegant way in the future.
parent 0413ba42
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -76,8 +76,8 @@ extern "C" {
	ASN1_CTX c; \
	type ret=NULL; \
	\
	c.pp=pp; \
	c.q= *pp; \
	c.pp=(unsigned char **)pp; \
	c.q= *(unsigned char **)pp; \
	c.error=ERR_R_NESTED_ASN1_ERROR; \
	if ((a == NULL) || ((*a) == NULL)) \
		{ if ((ret=(type)func()) == NULL) \
@@ -85,13 +85,13 @@ extern "C" {
	else	ret=(*a);

#define M_ASN1_D2I_Init() \
	c.p= *pp; \
	c.p= *(unsigned char **)pp; \
	c.max=(length == 0)?0:(c.p+length);

#define M_ASN1_D2I_Finish_2(a) \
	if (!asn1_Finish(&c)) \
		{ c.line=__LINE__; goto err; } \
	*pp=c.p; \
	*(unsigned char **)pp=c.p; \
	if (a != NULL) (*a)=ret; \
	return(ret);

@@ -99,7 +99,7 @@ extern "C" {
	M_ASN1_D2I_Finish_2(a); \
err:\
	ASN1_MAC_H_err((e),c.error,c.line); \
	asn1_add_error(*pp,(int)(c.q- *pp)); \
	asn1_add_error(*(unsigned char **)pp,(int)(c.q- *pp)); \
	if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \
	return(NULL)

+2 −1
Original line number Diff line number Diff line
@@ -84,7 +84,8 @@ EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, unsigned char **pp,
		{
#ifndef NO_RSA
	case EVP_PKEY_RSA:
		if ((ret->pkey.rsa=d2i_RSAPrivateKey(NULL,pp,length)) == NULL)
		if ((ret->pkey.rsa=d2i_RSAPrivateKey(NULL,
			(const unsigned char **)pp,length)) == NULL) /* TMP UGLY CAST */
			{
			ASN1err(ASN1_F_D2I_PRIVATEKEY,ERR_R_ASN1_LIB);
			goto err;
+2 −1
Original line number Diff line number Diff line
@@ -84,7 +84,8 @@ EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, unsigned char **pp,
		{
#ifndef NO_RSA
	case EVP_PKEY_RSA:
		if ((ret->pkey.rsa=d2i_RSAPublicKey(NULL,pp,length)) == NULL)
		if ((ret->pkey.rsa=d2i_RSAPublicKey(NULL,
			(const unsigned char **)pp,length)) == NULL) /* TMP UGLY CAST */
			{
			ASN1err(ASN1_F_D2I_PUBLICKEY,ERR_R_ASN1_LIB);
			goto err;
+1 −1
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ ASN1_METHOD *RSAPrivateKey_asn1_meth(void)
	return(&method);
	}

RSA *d2i_RSAPrivateKey(RSA **a, unsigned char **pp, long length)
RSA *d2i_RSAPrivateKey(RSA **a, const unsigned char **pp, long length)
	{
	int i=ASN1_R_PARSING;
	ASN1_INTEGER *bs=NULL;
+1 −1
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@
#define d2i_ASN1_INTEGER d2i_ASN1_UINTEGER
#endif

RSA *d2i_RSAPublicKey(RSA **a, unsigned char **pp, long length)
RSA *d2i_RSAPublicKey(RSA **a, const unsigned char **pp, long length)
	{
	int i=ASN1_R_PARSING;
	ASN1_INTEGER *bs=NULL;
Loading