/********EXTERNAL OBJECT PUBLIC METHODS - END ********/ /// <summary> /// Encrypts the string encoded plain text /// </summary> /// <param name="asymmetricEncryptionAlgorithm">string AsymmetricEncryptionAlgorithm enum, algorithm name</param> /// <param name="hashAlgorithm">string HashAlgorithm enum, algorithm name</param> /// <param name="asymmetricEncryptionPadding">string AsymmetricEncryptionPadding enum, padding name</param> /// <param name="keyPath">string path to key/certificate</param> /// <param name="isPrivate">boolean true if key is private, false if it is public</param> /// <param name="alias">string keystore/certificate pkcs12 format alias</param> /// <param name="password">Srting keysore/certificate pkcs12 format alias</param> /// <param name="plainText">string to encrypt</param> /// <returns>string Base64 encrypted plainText text</returns> private string DoEncryptInternal(string hashAlgorithm, string asymmetricEncryptionPadding, Key key, bool isPrivate, string plainText) { this.error.cleanError(); HashAlgorithm hash = HashAlgorithmUtils.getHashAlgorithm(hashAlgorithm, this.error); AsymmetricEncryptionPadding padding = AsymmetricEncryptionPaddingUtils.getAsymmetricEncryptionPadding(asymmetricEncryptionPadding, this.error); if (this.error.existsError()) { return(""); } string asymmetricEncryptionAlgorithm = ""; AsymmetricKeyParameter asymKey = null; if (isPrivate) { PrivateKeyManager keyMan = (PrivateKeyManager)key; if (!keyMan.HasPrivateKey || keyMan.HasError()) { this.error = keyMan.GetError(); return(""); } asymmetricEncryptionAlgorithm = keyMan.getPrivateKeyAlgorithm(); asymKey = keyMan.getPrivateKeyParameterForEncryption(); if (keyMan.HasError()) { this.error = keyMan.GetError(); return(""); } } else { CertificateX509 cert = (CertificateX509)key; if (!cert.Inicialized || cert.HasError()) { this.error = cert.GetError(); return(""); } asymmetricEncryptionAlgorithm = cert.getPublicKeyAlgorithm(); asymKey = cert.getPublicKeyParameterForEncryption(); if (cert.HasError()) { this.error = cert.GetError(); return(""); } } AsymmetricEncryptionAlgorithm algorithm = AsymmetricEncryptionAlgorithmUtils .getAsymmetricEncryptionAlgorithm(asymmetricEncryptionAlgorithm, this.error); try { return(doEncrypt(algorithm, hash, padding, asymKey, plainText)); } catch (InvalidCipherTextException) { this.error.setError("AE036", "Algoritmo inválido" + algorithm); return(""); } }