nitrokey.nk3.secrets_app¶
Oath Authenticator client
Wird über den CTAPHID-Transport mittels des benutzerdefinierten Herstellerbefehls verwendet. Kann auch direkt über CCID verwendet werden.
- exception nitrokey.nk3.secrets_app.SecretsAppException¶
Basen:
Exception
SecretsAppException(code: str, context: str)
- __init__(code, context)¶
- Parameter:
code (str)
context (str)
- Rückgabetyp:
None
- to_id()¶
- Rückgabetyp:
- to_string()¶
- Rückgabetyp:
str
- code: str¶
- context: str¶
- exception nitrokey.nk3.secrets_app.SecretsAppHealthCheckException¶
Basen:
Exception
- class nitrokey.nk3.secrets_app.Instruction¶
Basen:
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¶
Basen:
Enum
- classmethod from_attribute_byte(attribute_byte)¶
- Parameter:
attribute_byte (bytes)
- Rückgabetyp:
str
- Hmac = 64¶
- Hotp = 16¶
- HotpReverse = 48¶
- NotSet = 240¶
- Totp = 32¶
- class nitrokey.nk3.secrets_app.ListItem¶
Basen:
Objekt
ListItem(kind: ‚Kind‘, algorithm: ‚Algorithm‘, label: bytes, properties: nitrokey.nk3.secrets_app.ListItemProperties)
- __init__(kind, algorithm, label, properties)¶
- Parameter:
kind (Kind)
algorithm (Algorithm)
label (bytes)
properties (ListItemProperties)
- Rückgabetyp:
None
- classmethod get_type_name(x)¶
- Parameter:
x (Any)
- Rückgabetyp:
str
- label: bytes¶
- properties: ListItemProperties¶
- class nitrokey.nk3.secrets_app.ListItemProperties¶
Basen:
Objekt
ListItemProperties(touch_required: bool, secret_encryption: bool, pws_data_exist: bool)
- __init__(touch_required, secret_encryption, pws_data_exist)¶
- Parameter:
touch_required (bool)
secret_encryption (bool)
pws_data_exist (bool)
- Rückgabetyp:
None
- classmethod from_byte(b)¶
- Parameter:
b (int)
- Rückgabetyp:
- pws_data_exist: bool¶
- secret_encryption: bool¶
- touch_required: bool¶
- class nitrokey.nk3.secrets_app.PasswordSafeEntry¶
Basen:
Objekt
PasswordSafeEntry(login: Optional[bytes], password: Optional[bytes], metadata: Optional[bytes], properties: Optional[bytes] = None, name: Optional[bytes] = None)
- __init__(login, password, metadata, properties=None, name=None)¶
- Parameter:
login (bytes | None)
password (bytes | None)
metadata (bytes | None)
properties (bytes | None)
name (bytes | None)
- Rückgabetyp:
None
- tlv_encode()¶
- Rückgabetyp:
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¶
Basen:
Objekt
RawBytes(Daten: Liste[int])
- __init__(data)¶
- Parameter:
data (list[int])
- Rückgabetyp:
None
- data: list[int]¶
- class nitrokey.nk3.secrets_app.SecretsApp¶
Basen:
Objekt
Dies ist ein Secrets App-Client https://github.com/Nitrokey/trussed-secrets-app
- calculate(cred_id, challenge=None)¶
Berechnung des OTP-Codes für die Berechtigung mit dem Namen cred_id und mit der Aufforderung challenge.
- Parameter:
cred_id (bytes) – The name of the credential
challenge (int | None) – Herausforderung für die Berechnungen (nur TOTP). Sollte gleich sein mit: Zeitstempel/Zeitspanne. Der üblicherweise verwendete Wert für den Zeitraum ist 30.
- Rückgabe:
OTP-Code als Byte-String
- Rückgabetyp:
bytes
- change_pin_raw(password, new_password)¶
- Parameter:
password (str)
new_password (str)
- Rückgabetyp:
None
- clear_code()¶
Löschen Sie die Passphrase, die für die Authentifizierung bei anderen Befehlen verwendet wird.
- Rückgabetyp:
None
- delete(cred_id)¶
Löscht den Berechtigungsnachweis mit der angegebenen ID. Schlägt nicht fehl, wenn der angegebene Berechtigungsnachweis nicht existiert. :param credid: ID des Berechtigungsnachweises
- Parameter:
cred_id (bytes)
- Rückgabetyp:
None
- classmethod encode_properties_to_send(touch_button_required, pin_based_encryption, tlv=False)¶
Enkodierung der Eigenschaftsstruktur in ein einziges Byte @param touch_button_required: ob die Verwendung der Touch-Taste erforderlich ist @param pin_based_encryption: ob die PIN-Verschlüsselung angefordert wird (nur bei der Registrierung) @param tlv: setze True, wenn dies als TLV kodiert werden soll, im Gegensatz zum Standard „TV“, ohne L
- Parameter:
touch_button_required (bool)
pin_based_encryption (bool)
tlv (bool)
- Rückgabetyp:
- feature_active_PIN_authentication()¶
- Rückgabetyp:
bool
- feature_challenge_response_support()¶
- Rückgabetyp:
bool
- feature_extended_list()¶
- Rückgabetyp:
bool
- feature_old_application_version()¶
- Rückgabetyp:
bool
- feature_pws_support()¶
- Rückgabetyp:
bool
- get_credential(cred_id)¶
- Parameter:
cred_id (bytes)
- Rückgabetyp:
- get_feature_status_cached()¶
- Rückgabetyp:
- get_response_for_secret(challenge, secret)¶
- Parameter:
challenge (bytes)
secret (bytes)
- Rückgabetyp:
bytes
- get_secret_for_passphrase(passphrase)¶
- Parameter:
passphrase (str)
- Rückgabetyp:
bytes
- is_pin_healthy()¶
- Rückgabetyp:
bool
- list(extended=False)¶
Gibt eine Liste der registrierten Berechtigungsnachweise zurück :return: Liste von Bytestrings, oder Tupel von Bytestrings, wenn der Schalter „extended“ angegeben ist @veraltet
- Parameter:
extended (bool)
- Rückgabetyp:
list[Tuple[bytes, bytes] | bytes]
- list_with_properties(version=1)¶
Rückgabe einer Liste der registrierten Berechtigungsnachweise mit Eigenschaften :return: Liste von ListItems
- Parameter:
version (int)
- Rückgabetyp:
List[ListItem]
- protocol_v2_confirm_all_requests_with_pin()¶
- Rückgabetyp:
bool
- protocol_v3_separate_pin_and_no_pin_space()¶
- Rückgabetyp:
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)¶
Neues OTP Credential registrieren :param credid: Credential-ID :param secret: Der gemeinsame Schlüssel :param digits: Ziffern des erzeugten Codes :param type: OTP-Variante - HOTP oder TOTP :param algo: Der zu verwendende Hash-Algorithmus - SHA1, SHA256 oder SHA512 :param initial_counter_value: Der Anfangswert des Zählers für den HOTP-Berechtigungsnachweis (nur HOTP) :param touch_button_required: Zur Verwendung dieses Berechtigungsnachweises ist eine Anwesenheitsbestätigung des Benutzers erforderlich :param pin_based_encryption: Benutzerpräferenz für zusätzliche PIN-basierte Verschlüsselung :param login: Login-Feld für Password Safe :param password: Passwort-Feld für Password Safe :param metadata: Metadatenfeld für Password Safe :return: Keine
- register_yk_hmac(slot, secret)¶
Registrieren Sie einen Yubikey-kompatiblen Challenge-Response-Slot. @param slot: challenge-response slot @param secret: das Geheimnis
- Parameter:
slot (int)
secret (bytes)
- Rückgabetyp:
None
- rename_credential(cred_id, new_name)¶
Anmeldeinformationen umbenennen. Ein Alias für den Aufruf update_credential(). @param cred_id: Die zu ändernde ID der Anmeldeinformation @param new_name: Neue ID für die Anmeldeinformation
- Parameter:
cred_id (bytes)
new_name (bytes)
- Rückgabetyp:
None
- reset()¶
Alle Anmeldeinformationen aus der Datenbank entfernen
- Rückgabetyp:
None
- select()¶
Ausführen des SELECT-Befehls, der Details über das Gerät zurückgibt, einschließlich der für die Authentifizierung benötigten Challenge. :return SelectResponse Statusstruktur. Die Felder Challenge und Algorithm sind None, wenn die Passphrase nicht gesetzt ist.
- Rückgabetyp:
- set_code(passphrase)¶
Stellen Sie den Code mit den in der Protokollspezifikation vorgeschlagenen Standardwerten ein: - https://developers.yubico.com/OATH/YKOATH_Protocol.html
- Parameter:
passphrase (str)
- Rückgabetyp:
None
- set_code_raw(key, challenge, response)¶
Setzen oder Löschen der Passphrase, die zur Authentifizierung bei anderen Befehlen verwendet wird. Rohe Schnittstelle. :param key: Benutzer-Passphrase, die durch PBKDF2(ID,1000) verarbeitet wird und auf die ersten 16 Bytes beschränkt ist. :param challenge: Die aktuelle Challenge aus dem SELECT-Befehl. :param response: Die auf dem Client berechneten Daten, als Beweis für eine korrekte Einrichtung.
- Parameter:
key (bytes)
challenge (bytes)
response (bytes)
- Rückgabetyp:
None
- set_pin_raw(password)¶
- Parameter:
password (str)
- Rückgabetyp:
None
- update_credential(cred_id, new_name=None, login=None, password=None, metadata=None, touch_button=None)¶
Aktualisieren Sie die Felder der Berechtigung - Name, Attribute und PWS-Felder. Nicht ausgefüllte Felder werden nicht kodiert und während des Aktualisierungsvorgangs verwendet (der aktuelle Wert wird nicht geändert). @param cred_id: Die zu ändernde ID des Credentials @param new_name: Neue ID für das Credential @param login: Neuer Inhalt des Login-Feldes @param password: Neuer Inhalt des Passwort-Feldes @param metadata: Neuer Inhalt des Metadatenfeldes @param touch_button: Legt fest, ob die Verwendung der Berührungstaste erforderlich sein soll
- Parameter:
cred_id (bytes)
new_name (bytes | None)
login (bytes | None)
password (bytes | None)
metadata (bytes | None)
touch_button (bool | None)
- Rückgabetyp:
None
- validate(passphrase)¶
Authenticate using a passphrase
- Parameter:
passphrase (str)
- Rückgabetyp:
None
- validate_raw(challenge, response)¶
Authentifizierung mit einer Passphrase. Rohe Schnittstelle. :param challenge: Die aktuelle Challenge aus dem SELECT-Befehl. :param response: Die Antwort, die anhand der Herausforderung und des Geheimnisses berechnet wird.
- Parameter:
challenge (bytes)
response (bytes)
- Rückgabetyp:
bytes
- verify_code(cred_id, code)¶
Fahren Sie mit der Überprüfung des eingehenden OTP-Codes fort (auch bekannt als Reverse HOTP). :param cred_id: Der Name des Credentials :param code: Der zu überprüfende HOTP-Code. u32-Darstellung. :return: schlägt mit OTPAppException-Fehler fehl; gibt True zurück, wenn der Code mit dem intern berechneten Wert übereinstimmt.
- Parameter:
cred_id (bytes)
code (int)
- Rückgabetyp:
bool
- verify_pin_raw(password)¶
- Parameter:
password (str)
- Rückgabetyp:
None
- log: Logger¶
- logfn: Callable[[str], Any]¶
- write_corpus_fn: Callable[[Instruction | CCIDInstruction, bytes], Any] | None¶
- class nitrokey.nk3.secrets_app.SecretsAppExceptionID¶
Basen:
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¶
Basen:
Objekt
SelectResponse(version: Optional[bytes], pin_attempt_counter: Optional[int], salt: Optional[bytes], challenge: Optional[bytes], Algorithmus: Optional[bytes], serial_number: Optional[bytes])
- __init__(version, pin_attempt_counter, salt, challenge, algorithm, serial_number)¶
- Parameter:
version (bytes | None)
pin_attempt_counter (int | None)
salt (bytes | None)
challenge (bytes | None)
algorithm (bytes | None)
serial_number (bytes | None)
- Rückgabetyp:
None
- version_str()¶
- Rückgabetyp:
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¶
Basen:
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¶