unsigned char **signature,
// Sign the given `nonce` and return the signature as `signature`.
// This needs to allocate memory. The length of the signature is
// returned as `signatureLength`.
// If an error occurs the user can return specific error text through
// `customErrTxt`. The library will free this pointer.
natsConnection *conn = NULL;
natsOptions *opts = NULL;
const char *pubKey = "my public key......";
s = natsOptions_Create(&opts);
s = natsOptions_SetNKey(opts, pubKey, sigHandler, NULL);
s = natsConnection_Connect(&conn, opts);
// Destroy objects that were created
natsConnection_Destroy(conn);
natsOptions_Destroy(opts);