diff --git a/cng/aes.go b/cng/aes.go index 532ee88..329a120 100644 --- a/cng/aes.go +++ b/cng/aes.go @@ -47,7 +47,7 @@ func loadAes(id string, mode string) (h aesAlgorithm, err error) { } var info bcrypt.KEY_LENGTHS_STRUCT var discard uint32 - err = bcrypt.GetProperty(bcrypt.HANDLE(h.h), utf16PtrFromString(bcrypt.KEY_LENGTHS), uintptr(unsafe.Pointer(&info)), uint32(unsafe.Sizeof(info)), &discard, 0) + err = bcrypt.GetProperty(bcrypt.HANDLE(h.h), utf16PtrFromString(bcrypt.KEY_LENGTHS), unsafe.Pointer(&info), uint32(unsafe.Sizeof(info)), &discard, 0) if err != nil { return } diff --git a/cng/cng.go b/cng/cng.go index 6e06692..9c1c8a3 100644 --- a/cng/cng.go +++ b/cng/cng.go @@ -27,11 +27,11 @@ func utf16PtrFromString(s string) *uint16 { } func setString(h bcrypt.HANDLE, name, val string) error { - return bcrypt.SetProperty(h, utf16PtrFromString(name), uintptr(unsafe.Pointer(utf16PtrFromString(val))), uint32(len(val))+1, 0) + return bcrypt.SetProperty(h, utf16PtrFromString(name), unsafe.Pointer(utf16PtrFromString(val)), uint32(len(val))+1, 0) } func getUint32(h bcrypt.HANDLE, name string) (uint32, error) { var prop, discard uint32 - err := bcrypt.GetProperty(h, utf16PtrFromString(name), uintptr(unsafe.Pointer(&prop)), 4, &discard, 0) + err := bcrypt.GetProperty(h, utf16PtrFromString(name), unsafe.Pointer(&prop), 4, &discard, 0) return prop, err } diff --git a/internal/bcrypt/bcrypt_windows.go b/internal/bcrypt/bcrypt_windows.go index 247167b..cf677b3 100644 --- a/internal/bcrypt/bcrypt_windows.go +++ b/internal/bcrypt/bcrypt_windows.go @@ -88,8 +88,8 @@ func NewAUTHENTICATED_CIPHER_MODE_INFO(nonce, additionalData, tag []byte) *AUTHE return &info } -//sys GetProperty(hObject HANDLE, pszProperty *uint16, pbOutput uintptr, cbOutput uint32, pcbResult *uint32, dwFlags uint32) (s error) = bcrypt.BCryptGetProperty -//sys SetProperty(hObject HANDLE, pszProperty *uint16, pbInput uintptr, cbInput uint32, dwFlags uint32) (s error) = bcrypt.BCryptSetProperty +//sys GetProperty(hObject HANDLE, pszProperty *uint16, pbOutput unsafe.Pointer, cbOutput uint32, pcbResult *uint32, dwFlags uint32) (s error) = bcrypt.BCryptGetProperty +//sys SetProperty(hObject HANDLE, pszProperty *uint16, pbInput unsafe.Pointer, cbInput uint32, dwFlags uint32) (s error) = bcrypt.BCryptSetProperty //sys OpenAlgorithmProvider(phAlgorithm *ALG_HANDLE, pszAlgId *uint16, pszImplementation *uint16, dwFlags AlgorithmProviderFlags) (s error) = bcrypt.BCryptOpenAlgorithmProvider //sys CloseAlgorithmProvider(hAlgorithm ALG_HANDLE, dwFlags uint32) (s error) = bcrypt.BCryptCloseAlgorithmProvider diff --git a/internal/bcrypt/zsyscall_windows.go b/internal/bcrypt/zsyscall_windows.go index a354064..859b239 100644 --- a/internal/bcrypt/zsyscall_windows.go +++ b/internal/bcrypt/zsyscall_windows.go @@ -135,7 +135,7 @@ func GenerateSymmetricKey(hAlgorithm ALG_HANDLE, phKey *KEY_HANDLE, pbKeyObject return } -func GetProperty(hObject HANDLE, pszProperty *uint16, pbOutput uintptr, cbOutput uint32, pcbResult *uint32, dwFlags uint32) (s error) { +func GetProperty(hObject HANDLE, pszProperty *uint16, pbOutput unsafe.Pointer, cbOutput uint32, pcbResult *uint32, dwFlags uint32) (s error) { r0, _, _ := syscall.Syscall6(procBCryptGetProperty.Addr(), 6, uintptr(hObject), uintptr(unsafe.Pointer(pszProperty)), uintptr(pbOutput), uintptr(cbOutput), uintptr(unsafe.Pointer(pcbResult)), uintptr(dwFlags)) if r0 != 0 { s = syscall.Errno(r0) @@ -159,7 +159,7 @@ func OpenAlgorithmProvider(phAlgorithm *ALG_HANDLE, pszAlgId *uint16, pszImpleme return } -func SetProperty(hObject HANDLE, pszProperty *uint16, pbInput uintptr, cbInput uint32, dwFlags uint32) (s error) { +func SetProperty(hObject HANDLE, pszProperty *uint16, pbInput unsafe.Pointer, cbInput uint32, dwFlags uint32) (s error) { r0, _, _ := syscall.Syscall6(procBCryptSetProperty.Addr(), 5, uintptr(hObject), uintptr(unsafe.Pointer(pszProperty)), uintptr(pbInput), uintptr(cbInput), uintptr(dwFlags), 0) if r0 != 0 { s = syscall.Errno(r0)