nitrokey.nk3.secrets_app

Oath Authenticator client

Käytetään CTAPHID-kuljetuksen kautta mukautetun myyjän komennon kautta. Voidaan käyttää myös suoraan CCID:n kautta.

exception nitrokey.nk3.secrets_app.SecretsAppException

Perusteet: Exception

SecretsAppException(code: str, context: str)

__init__(code, context)
Parametrit:
  • code (str)

  • context (str)

Return type:

None

to_id()
Return type:

SecretsAppExceptionID

to_string()
Return type:

str

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

Perusteet: Exception

class nitrokey.nk3.secrets_app.Algorithm

Perusteet: Enum

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

Perusteet: Enum

Select = 164
class nitrokey.nk3.secrets_app.Instruction

Perusteet: 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

Perusteet: Enum

classmethod from_attribute_byte(attribute_byte)
Parametrit:

attribute_byte (bytes)

Return type:

str

classmethod from_attribute_byte_type(a)
Parametrit:

a (int)

Return type:

Kind

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

Perusteet: object

ListItem(kind: ’Kind’, algorithm: ’Algorithm’, label: bytes, properties: Nitrokey.nk3.secrets_app.ListItemProperties)

__init__(kind, algorithm, label, properties)
Parametrit:
Return type:

None

classmethod get_type_name(x)
Parametrit:

x (Any)

Return type:

str

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

Perusteet: object

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

__init__(touch_required, secret_encryption, pws_data_exist)
Parametrit:
  • touch_required (bool)

  • secret_encryption (bool)

  • pws_data_exist (bool)

Return type:

None

classmethod from_byte(b)
Parametrit:

b (int)

Return type:

ListItemProperties

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

Perusteet: object

PasswordSafeEntry(login: Password: Optional[bytes], password: metadata: [tavu], properties: Optional[bytes] = None, name: Optional[bytes] = None)

__init__(login, password, metadata, properties=None, name=None)
Parametrit:
  • login (bytes | None)

  • password (bytes | None)

  • metadata (bytes | None)

  • properties (bytes | None)

  • name (bytes | None)

Return type:

None

tlv_encode()
Return type:

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

Perusteet: object

RawBytes(data: list[int])

__init__(data)
Parametrit:

data (list[int])

Return type:

None

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

Perusteet: object

Tämä on Secrets App -asiakas https://github.com/Nitrokey/trussed-secrets-app

__init__(dev, logfn=None)
Parametrit:
  • dev (NK3)

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

calculate(cred_id, challenge=None)

Laske OTP-koodi tunnukselle nimeltä cred_id ja haasteelle challenge.

Parametrit:
  • cred_id (bytes) – The name of the credential

  • challenge (int | None) – Laskelmien haaste (vain TOTP). Pitäisi olla yhtä suuri kuin: timestamp/period. Yleisesti käytetty jakson arvo on 30.

Returns:

OTP-koodi tavujonona

Return type:

bytes

change_pin_raw(password, new_password)
Parametrit:
  • password (str)

  • new_password (str)

Return type:

None

clear_code()

Tyhjennä tunnuslause, jota käytetään todennuksessa muihin komentoihin.

Return type:

None

delete(cred_id)

Poista valtakirja annetulla id:llä. Ei onnistu, jos annettua valtakirjaa ei ole olemassa. :param credid: Credential ID

Parametrit:

cred_id (bytes)

Return type:

None

classmethod encode_properties_to_send(touch_button_required, pin_based_encryption, tlv=False)

Koodaa ominaisuuksien rakenne yhdeksi tavuksi @param touch_button_required: vaaditaanko kosketuspainikkeen käyttö @param pin_based_encryption: pyydetäänkö PIN-salausta (vain rekisteröinnin aikana) @param tlv: aseta True, jos tämä koodataan TLV:nä, eikä oletusarvona ”TV”, w/o L

Parametrit:
  • touch_button_required (bool)

  • pin_based_encryption (bool)

  • tlv (bool)

Return type:

RawBytes

feature_active_PIN_authentication()
Return type:

bool

feature_challenge_response_support()
Return type:

bool

feature_extended_list()
Return type:

bool

feature_old_application_version()
Return type:

bool

feature_pws_support()
Return type:

bool

get_credential(cred_id)
Parametrit:

cred_id (bytes)

Return type:

PasswordSafeEntry

get_feature_status_cached()
Return type:

SelectResponse

get_response_for_secret(challenge, secret)
Parametrit:
  • challenge (bytes)

  • secret (bytes)

Return type:

bytes

get_secret_for_passphrase(passphrase)
Parametrit:

passphrase (str)

Return type:

bytes

is_pin_healthy()
Return type:

bool

list(extended=False)

Palauttaa luettelon rekisteröidyistä valtakirjoista :return: @deprecated: Luettelo tavujoukoista tai tavujoukko, jos ”extended”-kytkin on annettu.

Parametrit:

extended (bool)

Return type:

list[Tuple[bytes, bytes] | bytes]

list_with_properties(version=1)

Palauttaa luettelon rekisteröidyistä valtakirjoista ominaisuuksineen :return: List of ListItems

Parametrit:

version (int)

Return type:

List[ListItem]

protocol_v2_confirm_all_requests_with_pin()
Return type:

bool

protocol_v3_separate_pin_and_no_pin_space()
Return type:

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)

Rekisteröi uusi OTP-tunniste :param credid: param secret: Jaettu avain :param digits: Tuotetun koodin numerot :param kind: OTP-muunnos - HOTP tai TOTP :param algo: Käytettävä hash-algoritmi - SHA1, SHA256 tai SHA512 :param initial_counter_value: Laskurin alkuarvo HOTP-tunnisteelle (vain HOTP) :param touch_button_required: Käyttäjän läsnäolovahvistus vaaditaan tämän valtakirjan käyttöön :param pin_based_encryption: Käyttäjän mieltymys PIN-pohjaiseen lisäsalaukseen :param login: Password Safe :param password: Password Safe :param metadata: Metatietokenttä Password Safe:lle :return: None

Parametrit:
  • 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)

Return type:

None

register_yk_hmac(slot, secret)

Rekisteröi Yubikey-yhteensopiva haaste-vastauspaikka. @param slot: challenge-response slot @param secret: salaisuus.

Parametrit:
  • slot (int)

  • secret (bytes)

Return type:

None

rename_credential(cred_id, new_name)

Nimeä valtakirja uudelleen. Alias kutsulle update_credential(). @param cred_id: Muutettavan valtakirjan ID @param new_name: Valtakirjan uusi ID.

Parametrit:
  • cred_id (bytes)

  • new_name (bytes)

Return type:

None

reset()

Poista kaikki valtakirjat tietokannasta

Return type:

None

select()

Suorittaa SELECT-komennon, joka palauttaa tietoja laitteesta, mukaan lukien todennukseen tarvittava haaste. :return SelectResponse Status structure. Challenge- ja Algorithm-kentät ovat None, jos salasanaa ei ole asetettu.

Return type:

SelectResponse

set_code(passphrase)

Aseta koodi protokollamäärittelyn mukaisilla oletusarvoilla: - https://developers.yubico.com/OATH/YKOATH_Protocol.html

Parametrit:

passphrase (str)

Return type:

None

set_code_raw(key, challenge, response)

Asettaa tai poistaa tunnuslauseen, jota käytetään tunnistautumiseen muihin komentoihin. Raaka rajapinta. :param key: Käyttäjän tunnuslause, joka on käsitelty PBKDF2(ID,1000):n avulla ja rajoitettu ensimmäisiin 16 tavuun. :param challenge: SELECT-komennosta otettu nykyinen haaste. :param response: Asiakkaan laskemat tiedot todisteena oikeasta asetuksesta.

Parametrit:
  • key (bytes)

  • challenge (bytes)

  • response (bytes)

Return type:

None

set_pin_raw(password)
Parametrit:

password (str)

Return type:

None

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

Päivitä valtakirjan kentät - nimi, attribuutit ja PWS-kentät. Täyttämättömiä kenttiä ei koodata eikä käytetä päivitysprosessin aikana (nykyinen arvo ei muutu). @param cred_id: Muokattavan valtakirjan tunnus @param new_name: Valtakirjan uusi tunnus @param login: Uusi login-kentän sisältö @param password: Uusi salasanakentän sisältö @param metadata: Uusi metatietokentän sisältö @param touch_button: Asettaa, onko kosketuspainikkeen käyttö pakollista

Parametrit:
  • cred_id (bytes)

  • new_name (bytes | None)

  • login (bytes | None)

  • password (bytes | None)

  • metadata (bytes | None)

  • touch_button (bool | None)

Return type:

None

validate(passphrase)

Authenticate using a passphrase

Parametrit:

passphrase (str)

Return type:

None

validate_raw(challenge, response)

Tunnistautuminen salasanalla. Raaka rajapinta. :param challenge: SELECT-komennosta otettu nykyinen haaste. :param response: Haasteen ja salaisuuden perusteella laskettu vastaus.

Parametrit:
  • challenge (bytes)

  • response (bytes)

Return type:

bytes

verify_code(cred_id, code)

Jatka saapuvan OTP-koodin vahvistamista (eli käänteistä HOTP:tä). :param cred_id: Tunnuksen nimi :param code: Tarkistettava HOTP-koodi. u32-edustus. :return: epäonnistuu OTPAppException-virheellä; palauttaa True, jos koodi vastaa sisäisesti laskettua arvoa.

Parametrit:
  • cred_id (bytes)

  • code (int)

Return type:

bool

verify_pin_raw(password)
Parametrit:

password (str)

Return type:

None

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

Perusteet: 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

Perusteet: object

SelectResponse(version: versio: Valinnainen[tavuja], pin_attempt_counter: salt: [tavu], challenge: Optional[bytes], algorithm: Optional[bytes], serial_number: Optional[bytes])

__init__(version, pin_attempt_counter, salt, challenge, algorithm, serial_number)
Parametrit:
  • version (bytes | None)

  • pin_attempt_counter (int | None)

  • salt (bytes | None)

  • challenge (bytes | None)

  • algorithm (bytes | None)

  • serial_number (bytes | None)

Return type:

None

version_str()
Return type:

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

Perusteet: 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