func AesDecrypt(state []byte, key string) {
	cstate, _ := (*C.uint8_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&state)).Data)), cgoAllocsUnknown
	ckey, _ := unpackPUint8String(key)
	C.yubikey_aes_decrypt(cstate, ckey)
}
AesDecrypt function as declared in libyubikey/yubikey.h:129
package yubikey
import "C"
import "unsafe"
func Parse(token *[16]byte, key *[16]byte, out *Token) {
	ctoken, _ := *(**C.uint8_t)(unsafe.Pointer(&token)), cgoAllocsUnknown
	ckey, _ := *(**C.uint8_t)(unsafe.Pointer(&key)), cgoAllocsUnknown
	cout, _ := out.PassRef()
	C.yubikey_parse(ctoken, ckey, cout)
}
func Generate(token *Token, key *[16]byte, out *[32]byte) {
	ctoken, _ := token.PassRef()
	ckey, _ := *(**C.uint8_t)(unsafe.Pointer(&key)), cgoAllocsUnknown
	cout, _ := *(**C.char)(unsafe.Pointer(&out)), cgoAllocsUnknown
	C.yubikey_generate(ctoken, ckey, cout)
}
func ModhexEncode(dst []byte, src string, srcsize uint) {
	cdst, _ := (*C.char)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&dst)).Data)), cgoAllocsUnknown
	csrc, _ := unpackPCharString(src)
	csrcsize, _ := (C.size_t)(srcsize), cgoAllocsUnknown
	C.yubikey_modhex_encode(cdst, csrc, csrcsize)
}
func ModhexDecode(dst []byte, src string, dstsize uint) {
	cdst, _ := (*C.char)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&dst)).Data)), cgoAllocsUnknown
	csrc, _ := unpackPCharString(src)
	cdstsize, _ := (C.size_t)(dstsize), cgoAllocsUnknown
	C.yubikey_modhex_decode(cdst, csrc, cdstsize)
}
func HexEncode(dst []byte, src string, srcsize uint) {
	cdst, _ := (*C.char)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&dst)).Data)), cgoAllocsUnknown
	csrc, _ := unpackPCharString(src)
	csrcsize, _ := (C.size_t)(srcsize), cgoAllocsUnknown
	C.yubikey_hex_encode(cdst, csrc, csrcsize)
}
func HexDecode(dst []byte, src string, dstsize uint) {
	cdst, _ := (*C.char)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&dst)).Data)), cgoAllocsUnknown
	csrc, _ := unpackPCharString(src)
	cdstsize, _ := (C.size_t)(dstsize), cgoAllocsUnknown
	C.yubikey_hex_decode(cdst, csrc, cdstsize)
}
func ModhexP(str string) int32 {
	cstr, _ := unpackPCharString(str)
	__ret := C.yubikey_modhex_p(cstr)
	__v := (int32)(__ret)
	return __v
}
func HexP(str string) int32 {
	cstr, _ := unpackPCharString(str)
	__ret := C.yubikey_hex_p(cstr)
	__v := (int32)(__ret)
	return __v
}
func Crc16(buf string, bufSize uint) uint16 {
	cbuf, _ := unpackPUint8String(buf)
	cbufSize, _ := (C.size_t)(bufSize), cgoAllocsUnknown
	__ret := C.yubikey_crc16(cbuf, cbufSize)
	__v := (uint16)(__ret)
	return __v
}