Почему открытый ключ в сертификате равен нулю - PullRequest
0 голосов
/ 15 марта 2019

Я использую следующий код для создания сертификата на устройстве Android:

//keypair 
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", "BC"); 
keyPairGenerator.initialize(2048,new SecureRandom()); 
KeyPair keyPair = keyPairGenerator.generateKeyPair(); 

//certificate 
Calendar calendar = Calendar.getInstance(); 
calendar.set(2009, 0, 1); 
Date notBefore = new Date(calendar.getTimeInMillis()); 
calendar.set(2029, 0, 1); 
Date notAfter = new Date(calendar.getTimeInMillis()); 
BigInteger serialNumber = 
BigInteger.valueOf(Math.abs(System.currentTimeMillis())); 
X509V3CertificateGenerator certGen = new X509V3CertificateGenerator(); 
X500Principal dnName = new 
X500Principal("C=XX,ST=XX,L=XX,O=XX,OU=XX,CN=XXXXX"); 
certGen.setSerialNumber(serialNumber); 
certGen.setIssuerDN(dnName); 
certGen.setNotBefore(notBefore); 
certGen.setNotAfter(notAfter); 
certGen.setSubjectDN(dnName); 
certGen.setPublicKey(keyPair.getPublic());         //set public key here 
certGen.setSignatureAlgorithm("SHA256WithRSAEncryption"); 
PrivateKey signingKey = keyPair.getPrivate(); 

X509Certificate cert = certGen.generate(signingKey,"BC"); 

//why certification's public keWy is null? 
android.util.Log.e("mylog","cert.getPublicKey():"+cert.getPublicKey()); 

В журнале указано, что cert.getPublicKey() возвращает ноль. Что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...