Pārlūkot izejas kodu

Merge pull request #313 from zulzardi/patch-2

Fixed RSA key bits wrong calculation for certain x509 certificate
Daiyuu Nobori 8 gadi atpakaļ
vecāks
revīzija
f9436daa6f
1 mainītis faili ar 11 papildinājumiem un 3 dzēšanām
  1. 11 3
      src/Mayaqua/Encrypt.c

+ 11 - 3
src/Mayaqua/Encrypt.c

@@ -4096,14 +4096,22 @@ X *X509ToX(X509 *x509)
 	type = k->pkey->type;
 
 	FreeBuf(b);
-
+	
+	//Fixed to get actual RSA key bits
+	x->bits = EVP_PKEY_bits(k->pkey);
+	
 	FreeK(k);
 
 	if (type == EVP_PKEY_RSA)
 	{
 		x->is_compatible_bit = true;
 
-		switch (size)
+		if(x->bits != 1024 && x->bits != 1536 && x->bits != 2048 && x->bits != 3072 && x->bits != 4096)
+			x->is_compatible_bit = false;
+		else
+			x->is_compatible_bit = true;
+		
+		/*switch (size)
 		{
 		case 162:
 			x->bits = 1024;
@@ -4128,7 +4136,7 @@ X *X509ToX(X509 *x509)
 		default:
 			x->is_compatible_bit = false;
 			break;
-		}
+		}*/
 	}
 
 	return x;