Cryptnox Docs

Set Pinless Path

Introduction

The Set Pinless Path command in Cryptnox allows you to enable a pinless authentication mode by assigning a predefined BIP32 derivation path that does not require PIN verification. This feature is useful for securely authorizing specific operations without entering a PIN, while still maintaining controlled access.

It requires a secure channel and a valid seed or extended key to function. The path must be EIP1581 compliant (m/43'/60'/1581') and consist of at least three levels, using 32-bit big-endian integers. To disable the pinless authentication, the command can be called with 0-byte data, but this requires a PUK for verification. Currently, we support only the "K1" key pair.

This setup ensures secure, PIN-free authentication while maintaining strict access control.

Command Specifications

Set Pinless Path Command

The Set Pinless Path command in Cryptnox enables authentication without a PIN by assigning a predefined BIP32 derivation path.

The following code snippet outlines the Python object for this command:

def set_pinless_path(puk:str, path: str = "m/44'/0'/0'/0/0"):
    card.set_pinless_path(path, puk)

For example, set_pinless_path("puk_code", "m/44'/0'/0'/0/0").

Application Protocol Data Unit (APDU) Components

The following table outlines the components of the Application Protocol Data Unit (APDU).

📘

Prerequisites:

  • The secure channel must be open.
  • A seed or extended key must be loaded.
FieldDescriptionValue
CLAThis field specifies the class of the instruction.0x80
INSThis field specifies the particular command or operation that the smart card or secure element should execute.0xC1
P1First parameter of the instruction that specifies the details about the operation being requested.0x00
P2First parameter of the instruction that specifies additional details about the operation being requested.0x00
DataKey dataPUK + x * 4 bytes path data (3 ≤ x ≤ 8)

Response

The following table outlines the possible responses that you will receive:

Response CodeDescription
0x9000Success
0x63CxPUK not validated (x tries before power cycle)
0x6A80The data length is not a multiple of 4 (between 12 and 32).
0x6983The given path does not start with EIP1581 path.
0x6985The wallet has no seed or extended key (checked before PUK).