Exemplo n.º 1
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public java.security.cert.X509Certificate[] loadCertificates(java.io.File certFile) throws java.security.cert.CertificateException, java.io.IOException
        public virtual X509Certificate[] LoadCertificates(File certFile)
        {
            CertificateFactory            certFactory  = CertificateFactory.getInstance(CERTIFICATE_TYPE);
            ICollection <X509Certificate> certificates = new LinkedList <X509Certificate>();

            using (PemReader r = new PemReader(new StreamReader(certFile)))
            {
                for (PemObject pemObject = r.readPemObject(); pemObject != null; pemObject = r.readPemObject())
                {
                    sbyte[] encodedCert = pemObject.Content;
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: java.util.Collection<? extends java.security.cert.X509Certificate> loadedCertificates = (java.util.Collection<java.security.cert.X509Certificate>) certFactory.generateCertificates(new java.io.ByteArrayInputStream(encodedCert));
                    ICollection <X509Certificate> loadedCertificates = (ICollection <X509Certificate>)certFactory.generateCertificates(new MemoryStream(encodedCert));
                    certificates.addAll(loadedCertificates);
                }
            }

            if (certificates.Count == 0)
            {
                // Ok, failed to read as PEM file, try and read it as raw binary certificate
                using (FileStream @in = new FileStream(certFile, FileMode.Open, FileAccess.Read))
                {
                    certificates = (ICollection <X509Certificate>)certFactory.generateCertificates(@in);
                }
            }

            return(certificates.toArray(new X509Certificate[certificates.Count]));
        }
Exemplo n.º 2
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public java.security.PrivateKey loadPrivateKey(java.io.File privateKeyFile) throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.spec.InvalidKeySpecException
        public virtual PrivateKey LoadPrivateKey(File privateKeyFile)
        {
            using (PemReader r = new PemReader(new StreamReader(privateKeyFile)))
            {
                PemObject pemObject = r.readPemObject();
                if (pemObject != null)
                {
                    sbyte[] encodedKey = pemObject.Content;
                    KeySpec keySpec    = new PKCS8EncodedKeySpec(encodedKey);
                    try
                    {
                        return(KeyFactory.getInstance("RSA").generatePrivate(keySpec));
                    }
                    catch (InvalidKeySpecException)
                    {
                        try
                        {
                            return(KeyFactory.getInstance("DSA").generatePrivate(keySpec));
                        }
                        catch (InvalidKeySpecException)
                        {
                            try
                            {
                                return(KeyFactory.getInstance("EC").generatePrivate(keySpec));
                            }
                            catch (InvalidKeySpecException e)
                            {
                                throw new InvalidKeySpecException("Neither RSA, DSA nor EC worked", e);
                            }
                        }
                    }
                }
            }

            // Ok, failed to read as PEM file, try and read it as a raw binary private key
            using (DataInputStream @in = new DataInputStream(new FileStream(privateKeyFile, FileMode.Open, FileAccess.Read)))
            {
                sbyte[] keyBytes = new sbyte[( int )privateKeyFile.length()];
                @in.readFully(keyBytes);

                KeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);

                return(KeyFactory.getInstance(DEFAULT_ENCRYPTION).generatePrivate(keySpec));
            }
        }