Commit 81063953 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Add control to retrieve signature MD.

parent e423c360
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -199,6 +199,10 @@ static int pkey_dsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
		dctx->md = p2;
		dctx->md = p2;
		return 1;
		return 1;


		case EVP_PKEY_CTRL_GET_MD:
		*(const EVP_MD **)p2 = dctx->md;
		return 1;

		case EVP_PKEY_CTRL_DIGESTINIT:
		case EVP_PKEY_CTRL_DIGESTINIT:
		case EVP_PKEY_CTRL_PKCS7_SIGN:
		case EVP_PKEY_CTRL_PKCS7_SIGN:
		case EVP_PKEY_CTRL_CMS_SIGN:
		case EVP_PKEY_CTRL_CMS_SIGN:
+4 −0
Original line number Original line Diff line number Diff line
@@ -242,6 +242,10 @@ static int pkey_ec_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
		dctx->md = p2;
		dctx->md = p2;
		return 1;
		return 1;


		case EVP_PKEY_CTRL_GET_MD:
		*(const EVP_MD **)p2 = dctx->md;
		return 1;

		case EVP_PKEY_CTRL_PEER_KEY:
		case EVP_PKEY_CTRL_PEER_KEY:
		/* Default behaviour is OK */
		/* Default behaviour is OK */
		case EVP_PKEY_CTRL_DIGESTINIT:
		case EVP_PKEY_CTRL_DIGESTINIT:
+6 −0
Original line number Original line Diff line number Diff line
@@ -1113,6 +1113,10 @@ void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth,
		EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG,  \
		EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG,  \
					EVP_PKEY_CTRL_MD, 0, (void *)md)
					EVP_PKEY_CTRL_MD, 0, (void *)md)


#define	 EVP_PKEY_CTX_get_signature_md(ctx, pmd)	\
		EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG,  \
					EVP_PKEY_CTRL_GET_MD, 0, (void *)pmd)

#define EVP_PKEY_CTRL_MD		1
#define EVP_PKEY_CTRL_MD		1
#define EVP_PKEY_CTRL_PEER_KEY		2
#define EVP_PKEY_CTRL_PEER_KEY		2


@@ -1134,6 +1138,8 @@ void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth,


#define EVP_PKEY_CTRL_CIPHER		12
#define EVP_PKEY_CTRL_CIPHER		12


#define EVP_PKEY_CTRL_GET_MD		13

#define EVP_PKEY_ALG_CTRL		0x1000
#define EVP_PKEY_ALG_CTRL		0x1000




+4 −0
Original line number Original line Diff line number Diff line
@@ -534,6 +534,10 @@ static int pkey_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
		rctx->md = p2;
		rctx->md = p2;
		return 1;
		return 1;


		case EVP_PKEY_CTRL_GET_MD:
		*(const EVP_MD **)p2 = rctx->md;
		return 1;

		case EVP_PKEY_CTRL_RSA_MGF1_MD:
		case EVP_PKEY_CTRL_RSA_MGF1_MD:
		case EVP_PKEY_CTRL_GET_RSA_MGF1_MD:
		case EVP_PKEY_CTRL_GET_RSA_MGF1_MD:
		if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING
		if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING
+8 −0
Original line number Original line Diff line number Diff line
@@ -86,6 +86,10 @@ static int pkey_gost_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
		}
		}
		break;
		break;


		case EVP_PKEY_CTRL_GET_MD:
		*(const EVP_MD **)p2 = pctx->md;
		return 1;

		case EVP_PKEY_CTRL_PKCS7_ENCRYPT:
		case EVP_PKEY_CTRL_PKCS7_ENCRYPT:
		case EVP_PKEY_CTRL_PKCS7_DECRYPT:
		case EVP_PKEY_CTRL_PKCS7_DECRYPT:
		case EVP_PKEY_CTRL_PKCS7_SIGN:
		case EVP_PKEY_CTRL_PKCS7_SIGN:
@@ -464,6 +468,10 @@ static int pkey_gost_mac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
		}
		}
		break;
		break;


		case EVP_PKEY_CTRL_GET_MD:
		*(const EVP_MD **)p2 = data->md;
		return 1;

		case EVP_PKEY_CTRL_PKCS7_ENCRYPT:
		case EVP_PKEY_CTRL_PKCS7_ENCRYPT:
		case EVP_PKEY_CTRL_PKCS7_DECRYPT:
		case EVP_PKEY_CTRL_PKCS7_DECRYPT:
		case EVP_PKEY_CTRL_PKCS7_SIGN:
		case EVP_PKEY_CTRL_PKCS7_SIGN: