Exemplo n.º 1
0
        private static PublicKey toDSAPublicKey(byte[] keyBytes) // throws IOException, GeneralSecurityException, MalformedKeyException
        {
            DNSInput @in = new DNSInput(keyBytes);

            int t = @in.readU8();

            if (t > 8)
            {
                throw new MalformedKeyException(keyBytes, ARSoft.Tools.Net.Dns.DnsSecAlgorithm.Dsa);
            }

            Org.BouncyCastle.Math.BigInteger q = Helpers.readBigInteger(@in, 20);
            Org.BouncyCastle.Math.BigInteger p = Helpers.readBigInteger(@in, 64 + t * 8);
            Org.BouncyCastle.Math.BigInteger g = Helpers.readBigInteger(@in, 64 + t * 8);
            Org.BouncyCastle.Math.BigInteger y = Helpers.readBigInteger(@in, 64 + t * 8);

            /*
             * KeyFactory factory = KeyFactory.getInstance("DSA");
             * return factory.generatePublic(new DSAPublicKeySpec(y, p, q, g));
             */

            Org.BouncyCastle.Crypto.Parameters.DsaParameters para = new Org.BouncyCastle.Crypto.Parameters.DsaParameters(p, q, g);

            Org.BouncyCastle.Crypto.Parameters.DsaPublicKeyParameters dp = new Org.BouncyCastle.Crypto.Parameters.DsaPublicKeyParameters(y, para);

            return(PublicKey.CreateInstance(dp));
        }
Exemplo n.º 2
0
        private static PublicKey toRSAPublicKey(byte[] keyBytes) // throws IOException, GeneralSecurityException
        {
            DNSInput @in = new DNSInput(keyBytes);

            int exponentLength = @in.readU8();

            if (exponentLength == 0)
            {
                exponentLength = @in.readU16();
            }

            Org.BouncyCastle.Math.BigInteger exponent = Helpers.readBigInteger(@in, exponentLength);
            Org.BouncyCastle.Math.BigInteger modulus  = Helpers.readBigInteger(@in);

            /*
             * KeyFactory factory = KeyFactory.getInstance("RSA");
             * return factory.generatePublic(new RSAPublicKeySpec(modulus, exponent));
             */

            Org.BouncyCastle.Crypto.Parameters.RsaKeyParameters kp
                = new Org.BouncyCastle.Crypto.Parameters.RsaKeyParameters(false, modulus, exponent);

            return(PublicKey.CreateInstance(kp));
        }