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