getApplicationHardwareCode static method
Build an application hardware code.
param applicationName The application name. param certificate The certificate. return The application hardware code. throws BiosealException An error has occurred during Bioseal Library execution.
Implementation
static String getApplicationHardwareCode(String? applicationName, String? certificate) {
Pointer<Char>? pApplicationName = applicationName?.toNativeUtf8().cast<Char>();
Pointer<Char>? pCertificate = certificate?.toNativeUtf8().cast<Char>();
Pointer<Char> pCode = nullptr;
Pointer<Int> pCodeSize = calloc.allocate(1);
pCodeSize[0] = -1;
try {
var err = biosealSDK.id3BiosealLicense_GetApplicationHardwareCode(pApplicationName ?? nullptr, pCertificate ?? nullptr, pCode, pCodeSize);
if (err == BiosealError.insufficientBuffer.value) {
pCode = calloc.allocate(pCodeSize.value);
err = biosealSDK.id3BiosealLicense_GetApplicationHardwareCode(pApplicationName ?? nullptr, pCertificate ?? nullptr, pCode, pCodeSize);
if (err != BiosealError.success.value) {
throw BiosealException(err);
}
}
final vCode = utf8.decode(Uint8List.fromList(pCode.cast<Uint8>().asTypedList(pCodeSize.value)));
return vCode;
} finally {
if (pApplicationName != null) {
calloc.free(pApplicationName);
}
if (pCertificate != null) {
calloc.free(pCertificate);
}
calloc.free(pCode);
calloc.free(pCodeSize);
}
}