Šifrování
Zašifrování pomocí certifikátu bez HMAC
krok - Máte požadovaná data v JSON Stringu
krok - Převedete JSON String do UTF8 Byte array
krok - UTF8 Byte array zašifrujete do PKCS7 Envelope pomocí veřejného klíče (Certifikát ke stažení zde)
krok - Získaný Byte array převedete 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());
}
5. krok - Výsledný Base64 String vložím do widgetu pomocí metody setProtectedData(Base64String)
owidget.setProtectedData(Base64String);
Zašifrování pomocí certifikátu s HMAC
krok - Kontaktujte mluvii a vyžádejte si base64string HMAC klíč pro svoji společnost / Pošlete mluvii base64string HMAC klíč pro svoji společnost
krok - Máte požadovaná data v JSON Stringu
krok - Převedete JSON String do UTF8 Byte array
krok - UTF8 Byte array zašifrujete do PKCS7 Envelope pomocí veřejného klíče (Certifikát ke stažení zde)
krok - Získaný Byte array převedete 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());
}
4. 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);
}
5. krok - Výsledné base64Stringy vložím do widgetu pomocí metody setProtectedData(Base64String)
owidget.setProtectedData(Base64String,ComputedBase64Hmac);
Last updated
Was this helpful?