nitrokey.nk3.secrets_app

Oath Authenticator client

Χρησιμοποιείται μέσω της μεταφοράς CTAPHID, μέσω της εντολής custom vendor. Μπορεί επίσης να χρησιμοποιηθεί απευθείας μέσω CCID.

exception nitrokey.nk3.secrets_app.SecretsAppException

Βάσεις: Exception

SecretsAppException(κωδικός: str, πλαίσιο: str)

__init__(code, context)
Παράμετροι:
  • code (str)

  • context (str)

Επιστρεφόμενος τύπος:

None

to_id()
Επιστρεφόμενος τύπος:

SecretsAppExceptionID

to_string()
Επιστρεφόμενος τύπος:

str

code: str
context: str
exception nitrokey.nk3.secrets_app.SecretsAppHealthCheckException

Βάσεις: Exception

class nitrokey.nk3.secrets_app.Algorithm

Βάσεις: Enum

Sha1 = 1
Sha256 = 2
Sha512 = 3
class nitrokey.nk3.secrets_app.CCIDInstruction

Βάσεις: Enum

Select = 164
class nitrokey.nk3.secrets_app.Instruction

Βάσεις: Enum

Calculate = 162
CalculateAll = 164
ChangePIN = 179
Delete = 2
GetCredential = 181
List = 161
Put = 1
Reset = 4
SendRemaining = 165
SetCode = 3
SetPIN = 180
UpdateCredential = 183
Validate = 163
VerifyCode = 177
VerifyPIN = 178
class nitrokey.nk3.secrets_app.Kind

Βάσεις: Enum

classmethod from_attribute_byte(attribute_byte)
Παράμετροι:

attribute_byte (bytes)

Επιστρεφόμενος τύπος:

str

classmethod from_attribute_byte_type(a)
Παράμετροι:

a (int)

Επιστρεφόμενος τύπος:

Kind

Hmac = 64
Hotp = 16
HotpReverse = 48
NotSet = 240
Totp = 32
class nitrokey.nk3.secrets_app.ListItem

Βάσεις: object

ListItem(kind: “Είδος”, algorithm: “Αλγόριθμος”, label: bytes, properties: Nitrokey.nk3.secrets_app.ListItemProperties)

__init__(kind, algorithm, label, properties)
Παράμετροι:
Επιστρεφόμενος τύπος:

None

classmethod get_type_name(x)
Παράμετροι:

x (Any)

Επιστρεφόμενος τύπος:

str

algorithm: Algorithm
kind: Kind
label: bytes
properties: ListItemProperties
class nitrokey.nk3.secrets_app.ListItemProperties

Βάσεις: object

ListItemProperties(touch_required: bool, secret_encryption: bool, pws_data_exist: bool)

__init__(touch_required, secret_encryption, pws_data_exist)
Παράμετροι:
  • touch_required (bool)

  • secret_encryption (bool)

  • pws_data_exist (bool)

Επιστρεφόμενος τύπος:

None

classmethod from_byte(b)
Παράμετροι:

b (int)

Επιστρεφόμενος τύπος:

ListItemProperties

pws_data_exist: bool
secret_encryption: bool
touch_required: bool
class nitrokey.nk3.secrets_app.PasswordSafeEntry

Βάσεις: object

PasswordSafeEntry(login: κωδικός πρόσβασης: Optional[bytes], password: [bytes], metadata: bytes], properties: Optional[bytes] = None, name: Optional[bytes] = None)

__init__(login, password, metadata, properties=None, name=None)
Παράμετροι:
  • login (bytes | None)

  • password (bytes | None)

  • metadata (bytes | None)

  • properties (bytes | None)

  • name (bytes | None)

Επιστρεφόμενος τύπος:

None

tlv_encode()
Επιστρεφόμενος τύπος:

list[Entry]

login: bytes | None
metadata: bytes | None
name: bytes | None = None
password: bytes | None
properties: bytes | None = None
class nitrokey.nk3.secrets_app.RawBytes

Βάσεις: object

RawBytes(data: list[int])

__init__(data)
Παράμετροι:

data (list[int])

Επιστρεφόμενος τύπος:

None

data: list[int]
class nitrokey.nk3.secrets_app.SecretsApp

Βάσεις: object

Αυτό είναι ένα Secrets App client https://github.com/Nitrokey/trussed-secrets-app

__init__(dev, logfn=None)
Παράμετροι:
  • dev (NK3)

  • logfn (Callable[[str], Any] | None)

calculate(cred_id, challenge=None)

Υπολογίστε τον κωδικό OTP για το διαπιστευτήριο με όνομα cred_id και με πρόκληση challenge.

Παράμετροι:
  • cred_id (bytes) – The name of the credential

  • challenge (int | None) – Πρόκληση για τους υπολογισμούς (μόνο TOTP). Πρέπει να είναι ίσο με: timestamp/period. Η συνήθως χρησιμοποιούμενη τιμή περιόδου είναι 30.

Επιστρέφει:

Κωδικός OTP ως συμβολοσειρά byte

Επιστρεφόμενος τύπος:

bytes

change_pin_raw(password, new_password)
Παράμετροι:
  • password (str)

  • new_password (str)

Επιστρεφόμενος τύπος:

None

clear_code()

Καθαρίστε τη συνθηματική φράση που χρησιμοποιείται για τον έλεγχο ταυτότητας σε άλλες εντολές.

Επιστρεφόμενος τύπος:

None

delete(cred_id)

Διαγραφή διαπιστευτηρίων με το συγκεκριμένο id. Δεν αποτυγχάνει, εάν το συγκεκριμένο διαπιστευτήριο δεν υπάρχει. :param credid: Credential ID

Παράμετροι:

cred_id (bytes)

Επιστρεφόμενος τύπος:

None

classmethod encode_properties_to_send(touch_button_required, pin_based_encryption, tlv=False)

Κωδικοποίηση της δομής ιδιοτήτων σε ένα μόνο byte @param touch_button_required: εάν απαιτείται η χρήση του κουμπιού αφής @param pin_based_encryption: εάν ζητείται η κρυπτογράφηση PIN (μόνο κατά την εγγραφή) @param tlv: ορίστε True, εάν αυτό πρέπει να κωδικοποιηθεί ως TLV, σε αντίθεση με το προεπιλεγμένο «TV», w/o L

Παράμετροι:
  • touch_button_required (bool)

  • pin_based_encryption (bool)

  • tlv (bool)

Επιστρεφόμενος τύπος:

RawBytes

feature_active_PIN_authentication()
Επιστρεφόμενος τύπος:

bool

feature_challenge_response_support()
Επιστρεφόμενος τύπος:

bool

feature_extended_list()
Επιστρεφόμενος τύπος:

bool

feature_old_application_version()
Επιστρεφόμενος τύπος:

bool

feature_pws_support()
Επιστρεφόμενος τύπος:

bool

get_credential(cred_id)
Παράμετροι:

cred_id (bytes)

Επιστρεφόμενος τύπος:

PasswordSafeEntry

get_feature_status_cached()
Επιστρεφόμενος τύπος:

SelectResponse

get_response_for_secret(challenge, secret)
Παράμετροι:
  • challenge (bytes)

  • secret (bytes)

Επιστρεφόμενος τύπος:

bytes

get_secret_for_passphrase(passphrase)
Παράμετροι:

passphrase (str)

Επιστρεφόμενος τύπος:

bytes

is_pin_healthy()
Επιστρεφόμενος τύπος:

bool

list(extended=False)

Επιστρέφει μια λίστα με τα καταχωρημένα διαπιστευτήρια :return: @deprecated

Παράμετροι:

extended (bool)

Επιστρεφόμενος τύπος:

list[Tuple[bytes, bytes] | bytes]

list_with_properties(version=1)

Επιστρέφει μια λίστα με τα καταχωρημένα διαπιστευτήρια με ιδιότητες :return: ListItems

Παράμετροι:

version (int)

Επιστρεφόμενος τύπος:

List[ListItem]

protocol_v2_confirm_all_requests_with_pin()
Επιστρεφόμενος τύπος:

bool

protocol_v3_separate_pin_and_no_pin_space()
Επιστρεφόμενος τύπος:

bool

register(credid, secret=b'00000000000000000000', digits=6, kind=Kind.NotSet, algo=Algorithm.Sha1, initial_counter_value=0, touch_button_required=False, pin_based_encryption=False, login=None, password=None, metadata=None)

Εγγραφή νέου διαπιστευτηρίου OTP :param credid: :param secret: Το κοινόχρηστο κλειδί :param digits: Digits of the produced code :param kind: Παραλλαγή OTP - HOTP ή TOTP :param algo: Ο αλγόριθμος κατακερματισμού που θα χρησιμοποιηθεί - SHA1, SHA256 ή SHA512 :param initial_counter_value: Η αρχική τιμή του μετρητή για το διαπιστευτήριο HOTP (μόνο HOTP) :param touch_button_required: Απαιτείται επιβεβαίωση της παρουσίας του χρήστη για τη χρήση αυτού του διαπιστευτηρίου :param pin_based_encryption: Προτίμηση του χρήστη για πρόσθετη κρυπτογράφηση βάσει PIN :param login: Πεδίο σύνδεσης για το Password Safe :param password: Πεδίο κωδικού πρόσβασης για το Password Safe :param metadata: Πεδίο μεταδεδομένων για το Password Safe :return: None

Παράμετροι:
  • credid (bytes)

  • secret (bytes)

  • digits (int)

  • kind (Kind)

  • algo (Algorithm)

  • initial_counter_value (int)

  • touch_button_required (bool)

  • pin_based_encryption (bool)

  • login (bytes | None)

  • password (bytes | None)

  • metadata (bytes | None)

Επιστρεφόμενος τύπος:

None

register_yk_hmac(slot, secret)

Καταχωρήστε μια υποδοχή που είναι συμβατή με το Yubikey για πρόκληση-απάντηση. @param slot: challenge-response slot @param secret: το μυστικό

Παράμετροι:
  • slot (int)

  • secret (bytes)

Επιστρεφόμενος τύπος:

None

rename_credential(cred_id, new_name)

Μετονομασία διαπιστευτηρίων. Ένα ψευδώνυμο για την κλήση update_credential(). @param cred_id: @param new_name: Νέο αναγνωριστικό για το διαπιστευτήριο.

Παράμετροι:
  • cred_id (bytes)

  • new_name (bytes)

Επιστρεφόμενος τύπος:

None

reset()

Αφαίρεση όλων των διαπιστευτηρίων από τη βάση δεδομένων

Επιστρεφόμενος τύπος:

None

select()

Εκτέλεση της εντολής SELECT, η οποία επιστρέφει λεπτομέρειες σχετικά με τη συσκευή, συμπεριλαμβανομένης της πρόκλησης που απαιτείται για τον έλεγχο ταυτότητας. :return Δομή κατάστασης SelectResponse. Τα πεδία Challenge και Algorithm είναι None, εάν δεν έχει οριστεί η συνθηματική φράση.

Επιστρεφόμενος τύπος:

SelectResponse

set_code(passphrase)

Ορίστε τον κωδικό με τις προεπιλογές που προτείνονται στις προδιαγραφές του πρωτοκόλλου: - https://developers.yubico.com/OATH/YKOATH_Protocol.html

Παράμετροι:

passphrase (str)

Επιστρεφόμενος τύπος:

None

set_code_raw(key, challenge, response)

Ορίστε ή καταργήστε τη συνθηματική φράση που χρησιμοποιείται για τον έλεγχο ταυτότητας σε άλλες εντολές. Ακατέργαστη διασύνδεση. :param key: Συνθηματική φράση χρήστη που επεξεργάζεται μέσω PBKDF2(ID,1000) και περιορίζεται στα πρώτα 16 bytes. :param challenge: Η τρέχουσα πρόκληση που λαμβάνεται από την εντολή SELECT. :param response: Τα δεδομένα που υπολογίζονται στον πελάτη, ως απόδειξη της σωστής εγκατάστασης.

Παράμετροι:
  • key (bytes)

  • challenge (bytes)

  • response (bytes)

Επιστρεφόμενος τύπος:

None

set_pin_raw(password)
Παράμετροι:

password (str)

Επιστρεφόμενος τύπος:

None

update_credential(cred_id, new_name=None, login=None, password=None, metadata=None, touch_button=None)

Ενημέρωση πεδίων διαπιστευτηρίων - όνομα, χαρακτηριστικά και πεδία PWS. Τα μη συμπληρωμένα πεδία δεν θα κωδικοποιηθούν και δεν θα χρησιμοποιηθούν κατά τη διαδικασία ενημέρωσης (δεν θα αλλάξουν την τρέχουσα τιμή). @param cred_id: Το αναγνωριστικό διαπιστευτηρίου προς τροποποίηση @param new_name: Νέο αναγνωριστικό για το διαπιστευτήριο @param login: Νέο περιεχόμενο του πεδίου login @param password: Νέο περιεχόμενο του πεδίου password @param metadata: Νέο περιεχόμενο πεδίου μεταδεδομένων @param touch_button: Ορισμός εάν η χρήση του κουμπιού αφής πρέπει να είναι υποχρεωτική

Παράμετροι:
  • cred_id (bytes)

  • new_name (bytes | None)

  • login (bytes | None)

  • password (bytes | None)

  • metadata (bytes | None)

  • touch_button (bool | None)

Επιστρεφόμενος τύπος:

None

validate(passphrase)

Authenticate using a passphrase

Παράμετροι:

passphrase (str)

Επιστρεφόμενος τύπος:

None

validate_raw(challenge, response)

Πιστοποίηση ταυτότητας με χρήση μιας φράσης πρόσβασης. Ακατέργαστη διασύνδεση. :param challenge: Η τρέχουσα πρόκληση που λαμβάνεται από την εντολή SELECT. :param response: Η απάντηση που υπολογίζεται με βάση την πρόκληση και το μυστικό.

Παράμετροι:
  • challenge (bytes)

  • response (bytes)

Επιστρεφόμενος τύπος:

bytes

verify_code(cred_id, code)

Προχωρήστε στην επαλήθευση του εισερχόμενου κωδικού OTP (ή αλλιώς αντίστροφη HOTP). :param cred_id: Το όνομα του διαπιστευτηρίου :param code: Ο κωδικός HOTP προς επαλήθευση. u32 αναπαράσταση. :return: αποτυγχάνει με σφάλμα OTPAppException- επιστρέφει True αν ο κωδικός ταιριάζει με την τιμή που υπολογίζεται εσωτερικά.

Παράμετροι:
  • cred_id (bytes)

  • code (int)

Επιστρεφόμενος τύπος:

bool

verify_pin_raw(password)
Παράμετροι:

password (str)

Επιστρεφόμενος τύπος:

None

dev: NK3
log: Logger
logfn: Callable[[str], Any]
write_corpus_fn: Callable[[Instruction | CCIDInstruction, bytes], Any] | None
class nitrokey.nk3.secrets_app.SecretsAppExceptionID

Βάσεις: IntEnum

__new__(value)
ClassNotSupported = 28160
CommandChainingNotSupported = 26756
ConditionsOfUseNotSatisfied = 27013
FunctionNotSupported = 27265
IncorrectDataParameter = 27264
IncorrectP1OrP2Parameter = 27270
InstructionNotSupportedOrInvalid = 27904
KeyReferenceNotFound = 27272
LogicalChannelNotSupported = 26753
MoreDataAvailable = 25087
NotEnoughMemory = 27268
NotFound = 27266
OperationBlocked = 27011
SecureMessagingNotSupported = 26754
SecurityStatusNotSatisfied = 27010
Success = 36864
UnspecifiedCheckingError = 28416
UnspecifiedNonpersistentExecutionError = 25600
UnspecifiedPersistentExecutionError = 25856
VerificationFailed = 25344
WrongLength = 26368
class nitrokey.nk3.secrets_app.SelectResponse

Βάσεις: object

SelectResponse(version: pin_attempt_counter: Προαιρετική[bytes], pin_attempt_counter: int], salt: [bytes], challenge: [bytes], algorithm: [bytes], serial_number: Προαιρετικός[bytes])

__init__(version, pin_attempt_counter, salt, challenge, algorithm, serial_number)
Παράμετροι:
  • version (bytes | None)

  • pin_attempt_counter (int | None)

  • salt (bytes | None)

  • challenge (bytes | None)

  • algorithm (bytes | None)

  • serial_number (bytes | None)

Επιστρεφόμενος τύπος:

None

version_str()
Επιστρεφόμενος τύπος:

str

algorithm: bytes | None
challenge: bytes | None
pin_attempt_counter: int | None
salt: bytes | None
serial_number: bytes | None
version: bytes | None
class nitrokey.nk3.secrets_app.Tag

Βάσεις: Enum

Algorithm = 123
Challenge = 116
CredentialId = 113
InitialCounter = 122
Key = 115
NameList = 114
NewPassword = 129
PINCounter = 130
Password = 128
Properties = 120
PwsLogin = 131
PwsMetadata = 133
PwsPassword = 132
Response = 117
SerialNumber = 143
Version = 121