mirror of https://github.com/wolfSSL/wolfTPM.git
Simplified fix for CSharp `SetCustomExtension`.
parent
ccee50355d
commit
042f4c51aa
|
@ -5009,24 +5009,7 @@ int wolfTPM2_CSR_SetCustomExt(WOLFTPM2_DEV* dev, WOLFTPM2_CSR* csr,
|
|||
}
|
||||
#if defined(WOLFSSL_ASN_TEMPLATE) && defined(WOLFSSL_CUSTOM_OID) && \
|
||||
defined(HAVE_OID_ENCODING)
|
||||
|
||||
if (XSTRLEN(oid) >= WOLFTPM2_MAX_OID_STRING_SZ) {
|
||||
return BUFFER_E;
|
||||
}
|
||||
|
||||
XSTRNCPY(csr->exts_oids[csr->customCertExtCount], oid,
|
||||
WOLFTPM2_MAX_OID_STRING_SZ);
|
||||
rc = wc_SetCustomExtension(&csr->req, critical,
|
||||
csr->exts_oids[csr->customCertExtCount], der,
|
||||
derSz);
|
||||
|
||||
if (rc == 0) {
|
||||
csr->customCertExtCount++;
|
||||
} else {
|
||||
XMEMSET(csr->exts_oids[csr->customCertExtCount], 0,
|
||||
WOLFTPM2_MAX_OID_STRING_SZ);
|
||||
}
|
||||
|
||||
rc = wc_SetCustomExtension(&csr->req, critical, oid, der, derSz);
|
||||
#else
|
||||
(void)critical;
|
||||
(void)oid;
|
||||
|
|
|
@ -89,7 +89,7 @@ typedef int64_t INT64;
|
|||
#include <wolfssl/wolfcrypt/hash.h>
|
||||
#include <wolfssl/wolfcrypt/rsa.h>
|
||||
#include <wolfssl/wolfcrypt/ecc.h>
|
||||
#include <wolfssl/wolfcrypt/asn.h>
|
||||
#include <wolfssl/wolfcrypt/asn_public.h>
|
||||
#include <wolfssl/wolfcrypt/hmac.h>
|
||||
#include <wolfssl/wolfcrypt/aes.h>
|
||||
#ifdef WOLF_CRYPTO_CB
|
||||
|
|
|
@ -83,24 +83,10 @@ typedef struct WOLFTPM2_HMAC {
|
|||
} WOLFTPM2_HMAC;
|
||||
|
||||
#ifdef WOLFTPM2_CERT_GEN
|
||||
|
||||
#ifndef WOLFTPM2_NUM_CUSTOM_EXT
|
||||
#define WOLFTPM2_NUM_CUSTOM_EXT NUM_CUSTOM_EXT
|
||||
#endif
|
||||
|
||||
#ifndef WOLFTPM2_MAX_OID_STRING_SZ
|
||||
#define WOLFTPM2_MAX_OID_STRING_SZ MAX_OID_STRING_SZ
|
||||
#endif
|
||||
|
||||
typedef struct WOLFTPM2_CSR {
|
||||
#if defined(WOLFSSL_ASN_TEMPLATE) && defined(WOLFSSL_CUSTOM_OID) && \
|
||||
defined(HAVE_OID_ENCODING)
|
||||
int customCertExtCount;
|
||||
char exts_oids[WOLFTPM2_NUM_CUSTOM_EXT][WOLFTPM2_MAX_OID_STRING_SZ];
|
||||
#endif /* WOLFSSL_ASN_TEMPLATE && WOLFSSL_CUSTOM_OID && HAVE_OID_ENCODING */
|
||||
Cert req;
|
||||
} WOLFTPM2_CSR;
|
||||
#endif /* WOLFTPM2_CERT_GEN */
|
||||
#endif
|
||||
|
||||
#ifndef WOLFTPM2_MAX_BUFFER
|
||||
#define WOLFTPM2_MAX_BUFFER 2048
|
||||
|
|
|
@ -105,7 +105,8 @@ namespace tpm_csharp_test
|
|||
Console.WriteLine(sb.ToString());
|
||||
}
|
||||
|
||||
private static void DumpByteArray(string filename, byte[] bytes) {
|
||||
private static void DumpByteArray(string filename, byte[] bytes)
|
||||
{
|
||||
var writer = new BinaryWriter(File.OpenWrite(filename));
|
||||
writer.Write(bytes);
|
||||
}
|
||||
|
|
|
@ -747,7 +747,7 @@ namespace wolfTPM
|
|||
private static extern int wolfTPM2_CSR_SetCustomExt(IntPtr dev,
|
||||
IntPtr csr,
|
||||
int critical,
|
||||
string oid,
|
||||
byte[] oid,
|
||||
byte[] der,
|
||||
uint derSz);
|
||||
|
||||
|
@ -763,9 +763,13 @@ namespace wolfTPM
|
|||
/// <returns>Success: 0</returns>
|
||||
public int SetCustomExtension(string oid, string der, int critical)
|
||||
{
|
||||
/* Allocate a buffer here for OID and DER, since the underlying
|
||||
* library wants to have the pointer available later. The garbage
|
||||
* collection at end of caller frees memory */
|
||||
byte[] oidBuf = Encoding.ASCII.GetBytes(oid);
|
||||
byte[] derBuf = Encoding.ASCII.GetBytes(der);
|
||||
int rc = wolfTPM2_CSR_SetCustomExt(IntPtr.Zero, csr, critical,
|
||||
oid, derBuf, (uint)der.Length);
|
||||
oidBuf, derBuf, (uint)der.Length);
|
||||
if (rc != (int)Status.TPM_RC_SUCCESS &&
|
||||
rc != (int)Status.NOT_COMPILED_IN) {
|
||||
throw new WolfTpm2Exception(
|
||||
|
|
Loading…
Reference in New Issue