Пример #1
0
        /// <summary>
        ///     Encrypt a Business Object
        /// </summary>
        /// <param name="plainObject">unencrypted Business Object</param>
        /// <param name="associatedDataString">max. 16 character long string (not secret)</param>
        /// <returns>an encrypted Business Object</returns>
        public EncryptedObjectAEAD Encrypt(BusinessObject plainObject, string associatedDataString)
        {
            var plainText    = JsonConvert.SerializeObject(plainObject, encryptionSerializerSettings);
            var nonce        = SecretAeadChaCha20Poly1305.GenerateNonce();
            var cipherString = Encrypt(plainText, associatedDataString, nonce);

            return(new EncryptedObjectAEAD(cipherString, associatedDataString, Convert.ToBase64String(nonce)));
        }
Пример #2
0
 /// <summary>
 /// Encrypt a given plain text and add associated data.
 /// </summary>
 /// <param name="plainText">UTF-8 encoded string containing the plain text to be encrypted</param>
 /// <param name="associatedDataString">max. 16 character long string (not secret)</param>
 /// <returns>Tuple of (cipherText, nonce); both as base64 encoded string</returns>
 public (string, string) Encrypt(string plainText, string associatedDataString)
 {
     byte[] nonce = SecretAeadChaCha20Poly1305.GenerateNonce();
     return(Encrypt(plainText, associatedDataString, nonce), Convert.ToBase64String(nonce));
 }