X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5c19dc3ae3bd8e40a9c028b0deddd50ff337692c..dd5fb164cf5b32c462296bc65e289e100f74b59a:/OSX/libsecurity_cryptkit/lib/feeECDSA.c diff --git a/OSX/libsecurity_cryptkit/lib/feeECDSA.c b/OSX/libsecurity_cryptkit/lib/feeECDSA.c index 601bc6a4..57736073 100644 --- a/OSX/libsecurity_cryptkit/lib/feeECDSA.c +++ b/OSX/libsecurity_cryptkit/lib/feeECDSA.c @@ -456,6 +456,17 @@ feeReturn feeECDSAVerify(const unsigned char *sigData, sigDbg(("ECDSA verify:\n")); + /* + * Verify that c and d are within [1,group_order-1] + */ + if((gcompg(cp->cOrderPlus, c) != 1) || (gcompg(cp->cOrderPlus, d) != 1) || + isZero(c) || isZero(d)) + { + returnGiant(c); + returnGiant(d); + return FR_InvalidSignature; + } + /* * W = signer's public key */