code: func NewKey() (*[SecretKeyLength]byte, error) {
  	// get 32-bytes of random from /dev/urandom
  	bytes, err := randomProvider.Bytes(SecretKeyLength)
  	if err != nil {
  		return nil, fmt.Errorf("unable to generate random: %v", err)
  	}
  
  	return KeySliceToArray(bytes)
  }
docs: // NewKey returns a new key that can be used to encrypt and decrypt messages.