Beispiel #1
0
        public static unsafe int Decrypt(ReadOnlySpan <byte> data, ReadOnlySpan <byte> tag, Span <byte> outData, ICryptor cryptor)
        {
            fixed(byte *dataPtr = &data.GetPinnableReference(), tagPtr = &tag.GetPinnableReference(), outDataPtr = &outData.GetPinnableReference())
            {
                var outLen = cryptor.DecryptAuth((ulong)dataPtr, (uint)data.Length, (ulong)tagPtr, (uint)tag.Length, (ulong)outDataPtr, (uint)outData.Length);

                if (outLen < 0)
                {
                    throw new AeadOperationException(outLen);
                }
                return(outLen);
            }
        }