示例#1
0
文件: err.go 项目: eftychis/crypto-1
// Get the last OpenSSL error and convert it to a human-readable string
func getErrString() string {
	e := C.ERR_get_error()

	buf := [120]byte{} // max length specified in OpenSSL doc
	bufp := (*_Ctype_char)(unsafe.Pointer(&buf[0]))
	C.ERR_error_string_n(e, bufp, C.size_t(len(buf)))

	return string(buf[:C.strlen(bufp)])
}
示例#2
0
文件: fips_on.go 项目: vbatts/go-fips
func lastError() string {
	buf := C.malloc(1024)
	e := C.ERR_get_error() // a C.ulong
	C.ERR_load_crypto_strings()
	defer C.ERR_free_strings()
	C.ERR_error_string_n(e, (*C.char)(buf), 1024)
	defer C.free(buf)
	return C.GoString((*C.char)(buf))
}
示例#3
0
文件: aes.go 项目: xyz12810/deblocus
func get_error() string {
	packed_error := C.ERR_get_error()
	str_buf := make([]byte, C.ERR_ERROR_STRING_BUF_LEN)
	C.ERR_error_string_n(packed_error, (*C.char)(unsafe.Pointer(&str_buf[0])), C.ERR_ERROR_STRING_BUF_LEN)
	n := bytes.IndexByte(str_buf, 0)
	if n > 0 {
		return string(str_buf[:n])
	} else {
		return fmt.Sprintf("error:%x", packed_error)
	}
}