Jak zašifrovat data a poslat je do mluvii?

Zašifrování pomocí certifikátu bez HMAC

  1. krok - Mám požadovaná data v JSON Stringu
  2. krok - Převedu JSON String do UTF8 Byte array
  3. krok - UTF8 Byte array zašifruji do PKCS7 Envelope pomocí veřejného klíče (Certifikát ke stažení na https://app.mluvii.com/Admin/CallDataProtection/EncryptionCertificate )
  4. krok - Získaný Byte array převedu do Base64
    //Kroky 3 a 4
    public static string EncryptByteArray(byte[] plainTextPayload, Org.BouncyCastle.X509.X509Certificate cert)
        {

            var random = new Org.BouncyCastle.Security.SecureRandom();
            var generator = new Org.BouncyCastle.Cms.CmsEnvelopedDataGenerator(random);

            generator.AddKeyTransRecipient(cert);

            var envelopedData = generator.Generate(new Org.BouncyCastle.Cms.CmsProcessableByteArray(plainTextPayload), Org.BouncyCastle.Cms.CmsEnvelopedGenerator.Aes256Cbc);
            return Convert.ToBase64String(envelopedData.GetEncoded());
        }
  1. krok - Výsledný Base64 String vložím do widgetu pomocí metody setProtectedData(Base64String)

    owidget.setProtectedData(Base64String);
    

Zašifrování pomocí certifikátu s HMAC

  1. krok - Kontaktuji mluvii a vyžádám si base64string HMAC klíč pro svoji společnost / Pošlu mluvii base64string HMAC klíč pro svoji společnost
  2. krok - Mám požadovaná data v JSON Stringu
  3. krok - Převedu JSON String do UTF8 Byte array
  4. krok - UTF8 Byte array zašifruji do PKCS7 Envelope pomocí veřejného klíče (Certifikát ke stažení na https://app.mluvii.com/Admin/CallDataProtection/EncryptionCertificate )
  5. krok - Získaný Byte array převedu do Base64

     // Kroky 4 a 5
     public static string EncryptByteArray(byte[] plainTextPayload, Org.BouncyCastle.X509.X509Certificate cert)
         {
    
             var random = new Org.BouncyCastle.Security.SecureRandom();
             var generator = new Org.BouncyCastle.Cms.CmsEnvelopedDataGenerator(random);
    
             generator.AddKeyTransRecipient(cert);
    
             var envelopedData = generator.Generate(new Org.BouncyCastle.Cms.CmsProcessableByteArray(plainTextPayload), Org.BouncyCastle.Cms.CmsEnvelopedGenerator.Aes256Cbc);
             return Convert.ToBase64String(envelopedData.GetEncoded());
         }
    
  6. krok - Pomocí klíče zahašuji byte array z kroku 3

     public static string ComputeAuthentication(byte[] plainTextPayload, string base64Hmac)
         {
             var key =  Convert.FromBase64String(base64Hmac);
    
             var hmac = new Org.BouncyCastle.Crypto.Macs.HMac(new Org.BouncyCastle.Crypto.Digests.Sha256Digest());
             var result = new byte[hmac.GetMacSize()];
    
             hmac.Init(new Org.BouncyCastle.Crypto.Parameters.KeyParameter(key));
             hmac.BlockUpdate(plainTextPayload, 0, plainTextPayload.Length);
             hmac.DoFinal(result, 0);
    
             return Convert.ToBase64String(result);
         }
    
  7. krok - Výsledné base64Stringy vložím do widgetu pomocí metody setProtectedData(Base64String)

    owidget.setProtectedData(Base64String,ComputedBase64Hmac);
    

results matching ""

    No results matching ""