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