KeyUtil.java revision e6bf3e8dfa2804891a82075cb469b736321b4827
18c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexenpackage org.bouncycastle.jcajce.provider.asymmetric.util; 28c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen 3ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexenimport org.bouncycastle.asn1.ASN1Encodable; 4ecc6b8c25a7e8d9d2b78889e88224354a1cc3160tuexenimport org.bouncycastle.asn1.ASN1Encoding; 58c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexenimport org.bouncycastle.asn1.pkcs.PrivateKeyInfo; 68c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexenimport org.bouncycastle.asn1.x509.AlgorithmIdentifier; 78c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexenimport org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; 88c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen 98c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexenpublic class KeyUtil 100ac02f34d6041cd0018437596a5a9a94685e6919tuexen{ 118c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen public static byte[] getEncodedSubjectPublicKeyInfo(AlgorithmIdentifier algId, ASN1Encodable keyData) 128c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 138c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen try 140ac02f34d6041cd0018437596a5a9a94685e6919tuexen { 158c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return getEncodedSubjectPublicKeyInfo(new SubjectPublicKeyInfo(algId, keyData)); 168c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 178c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen catch (Exception e) 188c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 198c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return null; 208c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 218c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 228c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen 238c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen public static byte[] getEncodedSubjectPublicKeyInfo(AlgorithmIdentifier algId, byte[] keyData) 248c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 258c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen try 268c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 278c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return getEncodedSubjectPublicKeyInfo(new SubjectPublicKeyInfo(algId, keyData)); 288c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 298c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen catch (Exception e) 308c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 318c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return null; 328c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 338c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 348c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen 35a8657c4fc04fb9cc82100f648810d51ec6ab155at public static byte[] getEncodedSubjectPublicKeyInfo(SubjectPublicKeyInfo info) 368c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 378c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen try 388c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 398c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return info.getEncoded(ASN1Encoding.DER); 408c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 418c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen catch (Exception e) 428c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 438c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return null; 448c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 458c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 468c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen 478c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen public static byte[] getEncodedPrivateKeyInfo(AlgorithmIdentifier algId, ASN1Encodable privKey) 488c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 498c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen try 508c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 518c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen PrivateKeyInfo info = new PrivateKeyInfo(algId, privKey.toASN1Primitive()); 52f7068d8ea8f314aa54a3aaec7d3603a9b9b55e0ctuexen 538c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return getEncodedPrivateKeyInfo(info); 54b7ebbfc1bd4420174e2a11b3b2bfd64281f44032tuexen } 5548830a703639020b04dbea0128bc37fd8a8ab35et catch (Exception e) 560ac02f34d6041cd0018437596a5a9a94685e6919tuexen { 578c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return null; 5881616c6a3e184f46276632dd15aa489cd06d94dftuexen } 596c632b3f6e570981666f8a3ff4be34eaf1735835t } 608c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen 611a0a058c2e170a7749bd410bdeff477bbd75a615tuexen public static byte[] getEncodedPrivateKeyInfo(PrivateKeyInfo info) 621a0a058c2e170a7749bd410bdeff477bbd75a615tuexen { 631a0a058c2e170a7749bd410bdeff477bbd75a615tuexen try 648c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 658c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return info.getEncoded(ASN1Encoding.DER); 661a0a058c2e170a7749bd410bdeff477bbd75a615tuexen } 678c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen catch (Exception e) 688c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen { 698c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen return null; 707ec5951ec04f35070419877f6b015541f6b9728dtuexen } 718c8a4cae58a2deed148551d56cb1ab315a55dbbdtuexen } 721a0a058c2e170a7749bd410bdeff477bbd75a615tuexen} 731a0a058c2e170a7749bd410bdeff477bbd75a615tuexen