/// <summary> /// Decrypts supplied buffer using xsalsa20_poly1305 algorithm, using supplied key and nonce to perform decryption. /// </summary> /// <param name="source">Buffer to decrypt from.</param> /// <param name="target">Decrypted message buffer.</param> /// <param name="key">Key to use for decryption.</param> /// <param name="nonce">Nonce to use for decryption.</param> /// <returns>Decryption status.</returns> // Token: 0x0600014D RID: 333 RVA: 0x0000456C File Offset: 0x0000276C public unsafe static int Decrypt(ReadOnlySpan <byte> source, Span <byte> target, ReadOnlySpan <byte> key, ReadOnlySpan <byte> nonce) { int result; fixed(byte *pinnableReference = source.GetPinnableReference()) { byte *encryptedMessage = pinnableReference; fixed(byte *pinnableReference2 = target.GetPinnableReference()) { byte *buffer = pinnableReference2; fixed(byte *pinnableReference3 = key.GetPinnableReference()) { byte *key2 = pinnableReference3; fixed(byte *pinnableReference4 = nonce.GetPinnableReference()) { byte *nonce2 = pinnableReference4; result = Interop._SodiumSecretBoxOpen(buffer, encryptedMessage, (ulong)((long)source.Length), nonce2, key2); } } } } return(result); }