internal static int DigestUpdate(SafeDigestCtxHandle ctx, ReadOnlySpan <byte> data) => DigestUpdate(ctx, ref MemoryMarshal.GetReference(data), data.Length);
internal static int DigestFinal(SafeDigestCtxHandle ctx, Span <byte> pbOutput, int cbOutput) => DigestFinal(ctx, ref pbOutput.DangerousGetPinnableReference(), cbOutput);
private static extern int DigestFinal(SafeDigestCtxHandle ctx, ref byte pbOutput, int cbOutput);
internal static int DigestUpdate(SafeDigestCtxHandle ctx, ReadOnlySpan <byte> pbData, int cbData) => DigestUpdate(ctx, ref pbData.DangerousGetPinnableReference(), cbData);
private static extern int DigestUpdate(SafeDigestCtxHandle ctx, ref byte pbData, int cbData);
internal static int DigestCurrent(SafeDigestCtxHandle ctx, Span <byte> output) => DigestCurrent(ctx, ref MemoryMarshal.GetReference(output), output.Length);
internal static extern int DigestReset(SafeDigestCtxHandle ctx);
internal static extern unsafe int DigestFinal(SafeDigestCtxHandle ctx, byte *pbOutput, int cbOutput);
internal static extern unsafe int DigestUpdate(SafeDigestCtxHandle ctx, byte *pbData, int cbData);
internal static partial int DigestReset(SafeDigestCtxHandle ctx);
private static partial int DigestCurrent(SafeDigestCtxHandle ctx, ref byte pbOutput, int cbOutput);
private static partial int DigestUpdate(SafeDigestCtxHandle ctx, ref byte pbData, int cbData);