Ejemplo n.º 1
0
        public void Digest(ReadOnlySpan <byte> data, Span <byte> result, params object[] extra)
        {
            Contract.Requires <ArgumentException>(data.Length == 80, $"{nameof(data)} must be exactly 80 bytes long");
            Contract.Requires <ArgumentException>(result.Length >= 32, $"{nameof(result)} must be greater or equal 32 bytes");

            fixed(byte *input = data)
            {
                fixed(byte *output = result)
                {
                    LibMultihash.verthash(input, output, data.Length);
                }
            }
        }
Ejemplo n.º 2
0
        public void Digest(ReadOnlySpan <byte> data, Span <byte> result, params object[] extra)
        {
            Contract.Requires <ArgumentException>(data.Length == 80, $"{nameof(data)} must be exactly 80 bytes long");
            Contract.Requires <ArgumentException>(result.Length >= 32, $"{nameof(result)} must be greater or equal 32 bytes");

            var sw = Stopwatch.StartNew();

            fixed(byte *input = data)
            {
                fixed(byte *output = result)
                {
                    LibMultihash.verthash(input, output, data.Length);
                }
            }

            messageBus?.SendTelemetry("Verthash", TelemetryCategory.Hash, sw.Elapsed);
        }