public void MakeCredential(FidoCredential credential, SecureString pin) { IntPtr pinPtr = IntPtr.Zero; try { if (pin.Length > 0) { pinPtr = Marshal.SecureStringToCoTaskMemAnsi(pin); } Native.fido_dev_make_cred(_native, (fido_cred_t *)credential, pinPtr).Check(); } finally { if (pinPtr != IntPtr.Zero) { Marshal.ZeroFreeCoTaskMemAnsi(pinPtr); } } }
/// <summary> /// Uses the device to generate a credential object /// </summary> /// <param name="credential">The credential object with its input properties set</param> /// <param name="pin">The pin of the device, if applicable</param> /// <exception cref="CtapException">Thrown if an error occurs while generating the credential</exception> public void MakeCredential(FidoCredential credential, string pin) => Native.fido_dev_make_cred(_native, (fido_cred_t *)credential, pin).Check();