Skip to content

Commit d7f7219

Browse files
committed
[Python] Fix Cert API argument type errors
NativeLibraryHandleMethodArguments correctly setting the argument types causes argument type errors: ctypes.ArgumentError: argument 1: TypeError: expected LP_c_ubyte instance instead of bytes We can safely cast bytes as the native side marks it const.
1 parent 759b7b0 commit d7f7219

File tree

1 file changed

+4
-2
lines changed
  • src/controller/python/chip/credentials

1 file changed

+4
-2
lines changed

src/controller/python/chip/credentials/cert.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ def convert_x509_cert_to_chip_cert(x509Cert: bytes) -> bytes:
3636
output_buffer = (ctypes.c_uint8 * 1024)()
3737
output_size = ctypes.c_size_t(1024)
3838

39-
_handle().pychip_ConvertX509CertToChipCert(x509Cert, len(x509Cert), output_buffer, ctypes.byref(output_size)).raise_on_error()
39+
_handle().pychip_ConvertX509CertToChipCert(ctypes.cast(x509Cert, ctypes.POINTER(ctypes.c_uint8)),
40+
len(x509Cert), output_buffer, ctypes.byref(output_size)).raise_on_error()
4041

4142
return bytes(output_buffer)[:output_size.value]
4243

@@ -46,6 +47,7 @@ def convert_chip_cert_to_x509_cert(chipCert: bytes) -> bytes:
4647
output_buffer = (ctypes.c_byte * 1024)()
4748
output_size = ctypes.c_size_t(1024)
4849

49-
_handle().pychip_ConvertChipCertToX509Cert(chipCert, len(chipCert), output_buffer, ctypes.byref(output_size)).raise_on_error()
50+
_handle().pychip_ConvertChipCertToX509Cert(ctypes.cast(chipCert, ctypes.POINTER(ctypes.c_uint8)),
51+
len(chipCert), output_buffer, ctypes.byref(output_size)).raise_on_error()
5052

5153
return bytes(output_buffer)[:output_size.value]

0 commit comments

Comments
 (0)