private static CredentialDetails GetCredentialDetails(GatewayPublicKey gatewayPublicKey, string userName, string Password) { // build credential object var credentialDetails = new CredentialDetails() { CredentialType = "Basic", EncryptionAlgorithm = "RSA-OAEP", Credentials = AsymmetricKeyEncryptionHelper.EncodeCredentials(userName, Password, gatewayPublicKey), EncryptedConnection = "Encrypted", PrivacyLevel = "None" }; return(credentialDetails); }
public static string EncodeCredentials(string userName, string password, GatewayPublicKey publicKey) { // using json serializer to handle escape characters in username and password var plainText = string.Format("{{\"credentialData\":[{{\"value\":{0},\"name\":\"username\"}},{{\"value\":{1},\"name\":\"password\"}}]}}", JsonConvert.SerializeObject(userName), JsonConvert.SerializeObject(password)); using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(EncryptedLength * 8)) { var parameters = rsa.ExportParameters(false); parameters.Exponent = Convert.FromBase64String(publicKey.Exponent); parameters.Modulus = Convert.FromBase64String(publicKey.Modulus); rsa.ImportParameters(parameters); return(Encrypt(plainText, rsa)); } }
public AsymmetricKeyEncryptor(GatewayPublicKey publicKey) { if (publicKey == null) { throw new ArgumentNullException("publicKey"); } if (string.IsNullOrEmpty(publicKey.Exponent)) { throw new ArgumentNullException("publicKey.Exponent"); } if (string.IsNullOrEmpty(publicKey.Modulus)) { throw new ArgumentNullException("publicKey.Modulus"); } this.publicKey = publicKey; }