Ejemplo n.º 1
0
        public static bool AddSubCaCertificate(byte[] certificateHash, byte[] encodedCert, byte[] signature)
        {
            if (CertificateStorageManager.IsSubCaCertificateAddedBefore(certificateHash))
            {
                Logger.log("Sub CA Certificate is added before");
                return(false);
            }

            Certificate subCaCertificate = CertificateParser.Parse(encodedCert);

            if (!subCaCertificate.IsLoaded)
            {
                Logger.log("Can not parse Sub CA Certificate");
                return(false);
            }

            if (!ValidateSubCaCertificateAddRequestSignature(subCaCertificate, signature))
            {
                Logger.log("Can not validate Add Sub CA Certificate request signature");
                return(false);
            }

            if (!CertificateValidator.ValidateSubCaCertificate(subCaCertificate))
            {
                Logger.log("Can not validate Sub CA Certificate");
                return(false);
            }

            CertificateStorageManager.AddSubCaCertificateToStorage(subCaCertificate, certificateHash, encodedCert);

            return(true);
        }