Ich habe eine CSR-Datei vom Client zur Verfügung gestellt, ich bin in der Lage, den Schlüssel-Typ (RSA/DSA) über JcaPKCS10CertificationRequest GetPublicKey(). GetAlgorithm() -Methode zu finden, aber ich kann keinen geeigneten Weg finden Bestimmen Sie die Länge/Größe des öffentlichen Schlüssels (z. B. 1024/2048/4096 Bits).Wie ermitteln Sie die Größe des öffentlichen Schlüssels aus der CSR-Datei mit Bouncy Castle in Java?
Q
Wie ermitteln Sie die Größe des öffentlichen Schlüssels aus der CSR-Datei mit Bouncy Castle in Java?
0
A
Antwort
2
Soweit ich es verstehe, gibt es keinen üblichen Weg, um die 'Schlüsselgröße' eines öffentlichen Schlüssels zu erhalten. Überprüfen Sie stattdessen Ihren öffentlichen Schlüssel, um festzustellen, ob er Schnittstellen wie RSAPublicKey oder DSAPublicKey implementiert. Ist dies der Fall, die verschiedenen Interface-Methoden verwenden, um eine Eigenschaft aus dem Schlüssel zu extrahieren und die Bitlänge, dass bekommen, zum Beispiel:
PublicKey publicKey = yourRequest.getPublicKey();
int keySize
if (publicKey instanceof RSAPublicKey) {
keySize = ((RSAPublicKey)publicKey).getPublicExponent().bitLength();
} else if (publicKey instance DSAPublicKey) {
keySize = ((DSAPublicKey)publicKey).getY().bitLength();
} else {
// handle other public key types.
}
Dank @Luke Woodward, es funktionierte prima, nur ein kleines zwicken für RSA keySize bekommen, es sollte sein ** keySize = ((RSAPublicKey) publicKey) .getModulus(). bitLength(); **, trotzdem vielen Dank. – technaren