poly1305_wasm.mx raw
1 //go:build wasm
2 //:build wasm
3
4 package poly1305
5
6 import (
7 p1305 "vendor/golang.org/x/crypto/internal/poly1305"
8 )
9
10 func MAC(key, data []byte) (buf []byte) {
11 if len(key) != 32 {
12 return nil
13 }
14 var k [32]byte
15 copy(k[:], key)
16 var out [16]byte
17 p1305.Sum(&out, data, &k)
18 return out[:]
19 }
20
21 func Verify(key, data, tag []byte) (ok bool) {
22 if len(key) != 32 || len(tag) != 16 {
23 return false
24 }
25 var k [32]byte
26 var t [16]byte
27 copy(k[:], key)
28 copy(t[:], tag)
29 return p1305.Verify(&t, data, &k)
30 }
31