nl:: بافت:: پروفایل ها:: امنیت:: رمزهای عبور
این فضای نام شامل تمام رابط های موجود در Weave برای کتابخانه رمزهای Weave در نمایه امنیتی Weave است.
خلاصه
شمارش ها |
---|
@278 { kPasscode_Config1_TEST_ONLY = 0x01, kPasscode_Config2 = 0x02, kPasscodeConfig1_KeyId = WeaveKeyId::kNone } | enum انواع پیکربندی رمزگذاری رمز عبور را ببافید. |
@279 { kPasscodeEncryptionKeyLen = Platform::Security::AES128BlockCipher::kKeyLength, kPasscodeAuthenticationKeyLen = Platform::Security::SHA1::kHashLength, kPasscodeFingerprintKeyLen = Platform::Security::SHA1::kHashLength, kPasscodeTotalDerivedKeyLen = kPasscodeEncryptionKeyLen + kPasscodeAuthenticationKeyLen, kPasscodePaddedLen = Platform::Security::AES128BlockCipher::kBlockLength, kPasscodeAuthenticatorLen = 8, kPasscodeFingerprintLen = 8, kPasscodeMaxEncryptedLen = sizeof(uint8_t) + 2 * sizeof(uint32_t) + kPasscodePaddedLen + kPasscodeAuthenticatorLen + kPasscodeFingerprintLen, kPasscodeMaxLen = kPasscodePaddedLen, kPasscodeEncKeyDiversifierSize = sizeof(kPasscodeEncKeyDiversifier) + sizeof(uint8_t), kPasscodeFingerprintKeyDiversifierSize = sizeof(kPasscodeFingerprintKeyDiversifier) } | enum اندازه پارامترهای پروتکل رمزگذاری رمز عبور را ببافید. |
متغیرها |
---|
kPasscodeEncKeyDiversifier = { 0x1A, 0x65, 0x5D, 0x96 }[] | const uint8_t متنوع کننده کلید برای استخراج کلید رمزگذاری رمز عبور Weave استفاده می شود. |
kPasscodeFingerprintKeyDiversifier = { 0xD1, 0xA1, 0xD9, 0x6C }[] | const uint8_t متنوع کننده کلید برای استخراج کلید رمزگذاری رمز عبور Weave استفاده می شود. |
کارکرد |
---|
DecryptPasscode (const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen, GroupKeyStoreBase *groupKeyStore) | رمز عبوری را که با استفاده از طرح رمزگذاری Nest Passcode رمزگذاری شده است، رمزگشایی کنید. |
DecryptPasscode (const uint8_t *encPasscode, size_t encPasscodeLen, const uint8_t *encKey, const uint8_t *authKey, const uint8_t *fingerprintKey, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen) | رمز عبوری را که با استفاده از طرح رمزگذاری Nest Passcode رمزگذاری شده است، رمزگشایی کنید. |
EncryptPasscode (uint8_t config, uint32_t keyId, uint32_t nonce, const uint8_t *passcode, size_t passcodeLen, uint8_t *encPasscode, size_t encPasscodeBufSize, size_t & encPasscodeLen, GroupKeyStoreBase *groupKeyStore) | رمز عبور را با استفاده از طرح رمزگذاری Nest Passcode رمزگذاری کنید. |
EncryptPasscode (uint8_t config, uint32_t keyId, uint32_t nonce, const uint8_t *passcode, size_t passcodeLen, const uint8_t *encKey, const uint8_t *authKey, const uint8_t *fingerprintKey, uint8_t *encPasscode, size_t encPasscodeBufSize, size_t & encPasscodeLen) | رمز عبور را با استفاده از طرح رمزگذاری Nest Passcode رمزگذاری کنید. |
GetEncryptedPasscodeConfig (const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t & config) | نوع پیکربندی یک رمز عبور رمزگذاری شده را دریافت کنید. |
GetEncryptedPasscodeFingerprint (const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *fingerprintBuf, size_t fingerprintBufSize, size_t & fingerprintLen) | مقدار اثر انگشت مرتبط با یک رمز عبور رمزگذاری شده را دریافت کنید. |
GetEncryptedPasscodeKeyId (const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & keyId) | شناسه کلید مورد استفاده برای رمزگذاری یک رمز عبور رمزگذاری شده را دریافت کنید. |
GetEncryptedPasscodeNonce (const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & nonce) | مقدار nonce مربوط به یک رمز عبور رمزگذاری شده را دریافت کنید. |
IsSupportedPasscodeEncryptionConfig (uint8_t config) | bool اگر پیکربندی رمزگذاری گذرواژه ارائه شده توسط APIهای رمزگذاری/رمزگشایی رمز عبور پشتیبانی شود، درست برمیگردد. |
شمارش ها
@278
@278
انواع پیکربندی رمزگذاری رمز عبور را ببافید.
خواص |
---|
kPasscodeConfig1_KeyId | شناسه کلید ساختگی برای پیکربندی رمز عبور آزمایشی شماره 1 استفاده می شود. |
kPasscode_Config1_TEST_ONLY | پیکربندی رمزگذاری رمز عبور شماره 1 از رمزگذاری و کلیدهای مخفی برای احراز هویت و اثرانگشت رمز عبور استفاده نمیکند. این پیکربندی باید فقط برای اهداف تست استفاده شود. |
kPasscode_Config2 | پیکربندی رمزگذاری رمز عبور شماره 2 از رمزگذاری AES-128-ECB با یکپارچگی 8 بایتی HMAC-SHA-1 و اثر انگشت 8 بایتی HMAC-SHA-1 استفاده می کند. |
@279
@279
اندازه پارامترهای پروتکل رمزگذاری رمز عبور را ببافید.
خواص |
---|
kPasscodeAuthenticationKeyLen | طول کلید احراز هویت رمز عبور (SHA-1). |
kPasscodeAuthenticatorLen | طول تأیید کننده رمز عبور. |
kPasscodeEncKeyDiversifierSize | اندازه متنوع کننده کلید برنامه رمزگذاری رمز عبور. |
kPasscodeEncryptionKeyLen | طول کلید رمزگذاری رمز عبور (AES-128). |
kPasscodeFingerprintKeyDiversifierSize | اندازه متنوع کننده کلید اثر انگشت رمز عبور. |
kPasscodeFingerprintKeyLen | طول کلید اثر انگشت رمز عبور (SHA-1). |
kPasscodeFingerprintLen | طول اثر انگشت رمز عبور |
kPasscodeMaxEncryptedLen | حداکثر طول رمز عبور رمزگذاری شده |
kPasscodeMaxLen | حداکثر طول رمز عبور رمزگذاری نشده |
kPasscodePaddedLen | طول رمز عبور (به طول بلوک AES-128 اضافه شده است). |
kPasscodeTotalDerivedKeyLen | طول کل گذرواژه (رمزگذاری و یکپارچگی). |
متغیرها
kPasscodeEncKeyDiversifier
const uint8_t kPasscodeEncKeyDiversifier[] = { 0x1A, 0x65, 0x5D, 0x96 }
متنوع کننده کلید برای استخراج کلید رمزگذاری رمز عبور Weave استفاده می شود.
این مقدار، 4 بایت اول SHA-1 HASH عبارت "Nest Passcode EK and AK" را نشان می دهد.
kPasscodeFingerprintKeyDiversifier
const uint8_t kPasscodeFingerprintKeyDiversifier[] = { 0xD1, 0xA1, 0xD9, 0x6C }
متنوع کننده کلید برای استخراج کلید رمزگذاری رمز عبور Weave استفاده می شود.
این مقدار، 4 بایت اول SHA-1 HASH عبارت "Nest Passcode EK and AK" را نشان می دهد.
کارکرد
رمزگشایی رمز عبور
WEAVE_ERROR DecryptPasscode(
const uint8_t *encPasscode,
size_t encPasscodeLen,
uint8_t *passcodeBuf,
size_t passcodeBufSize,
size_t & passcodeLen,
GroupKeyStoreBase *groupKeyStore
)
رمز عبوری را که با استفاده از طرح رمزگذاری Nest Passcode رمزگذاری شده است، رمزگشایی کنید.
جزئیات | مولفه های | [in] encPasscode | یک اشاره گر به بافر رمز عبور رمزگذاری شده. | [in] encPasscodeLen | طول رمز عبور رمزگذاری شده | [in] passcodeBuf | اشاره گر به بافر برای دریافت رمز رمزگشایی شده. | [in] passcodeBufSize | اندازه بافر که توسط passcodeBuf به آن اشاره شده است. | [out] passcodeLen | طول رمز عبور رمزگشایی شده را تنظیم کنید. | [in] groupKeyStore | یک اشاره گر به شی ذخیره کلید گروه. |
|
ارزش های بازگشتی | WEAVE_NO_ERROR | در مورد موفقیت | WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG | اگر پیکربندی رمز عبور مشخص شده پشتیبانی نمی شود. | WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED | اگر احراز هویت رمز عبور ناموفق باشد. | WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED | اگر بررسی اثر انگشت رمز عبور ناموفق بود. | WEAVE_ERROR_INVALID_KEY_ID | اگر کلید درخواستی دارای شناسه کلید نامعتبر باشد. | WEAVE_ERROR_BUFFER_TOO_SMALL | اگر بافر رمز عبور ارائه شده خیلی کوچک است. | WEAVE_ERROR_INVALID_ARGUMENT | اگر رمز عبور رمزگذاری شده خیلی کوتاه یا خیلی طولانی باشد. یا اگر اشاره گر به فروشگاه کلید گروهی ارائه نشده باشد یا فروشگاه کلید پلت فرم پارامترهای کلیدی نامعتبر را برمی گرداند. | other | سایر خطاهای پلتفرم خاص که توسط API های فروشگاه کلید پلتفرم برگردانده شده اند. |
|
رمزگشایی رمز عبور
WEAVE_ERROR DecryptPasscode(
const uint8_t *encPasscode,
size_t encPasscodeLen,
const uint8_t *encKey,
const uint8_t *authKey,
const uint8_t *fingerprintKey,
uint8_t *passcodeBuf,
size_t passcodeBufSize,
size_t & passcodeLen
)
رمز عبوری را که با استفاده از طرح رمزگذاری Nest Passcode رمزگذاری شده است، رمزگشایی کنید.
جزئیات | مولفه های | [in] encPasscode | یک اشاره گر به بافر رمز عبور رمزگذاری شده. | [in] encPasscodeLen | طول رمز عبور رمزگذاری شده | [in] encKey | اشاره گر به کلیدی که برای رمزگذاری رمز عبور استفاده می شود. طول کلید باید با الگوریتم رمزگذاری مرتبط با پیکربندی مشخص شده مطابقت داشته باشد. | [in] authKey | اشاره گر به کلیدی که برای احراز هویت رمز عبور استفاده می شود. طول کلید باید با الگوریتم احراز هویت مرتبط با پیکربندی مشخص شده مطابقت داشته باشد. | [in] fingerprintKey | یک اشاره گر به کلیدی که برای ایجاد اثر انگشت رمز عبور استفاده می شود. طول کلید باید با الگوریتم اثر انگشت مرتبط با پیکربندی مشخص شده مطابقت داشته باشد. | [in] passcodeBuf | اشاره گر به بافر برای دریافت رمز رمزگشایی شده. | [in] passcodeBufSize | اندازه بافر که توسط passcodeBuf به آن اشاره شده است. | [out] passcodeLen | طول رمز عبور رمزگشایی شده را تنظیم کنید. |
|
ارزش های بازگشتی | WEAVE_NO_ERROR | در مورد موفقیت | WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG | اگر پیکربندی رمز عبور مشخص شده پشتیبانی نمی شود. | WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED | اگر احراز هویت رمز عبور ناموفق باشد. | WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED | اگر بررسی اثر انگشت رمز عبور ناموفق بود. | WEAVE_ERROR_BUFFER_TOO_SMALL | اگر بافر رمز عبور ارائه شده خیلی کوچک است. | WEAVE_ERROR_INVALID_ARGUMENT | اگر رمز عبور رمزگذاری شده خیلی کوتاه یا خیلی طولانی باشد. |
|
رمز عبور را رمزگذاری کنید
WEAVE_ERROR EncryptPasscode(
uint8_t config,
uint32_t keyId,
uint32_t nonce,
const uint8_t *passcode,
size_t passcodeLen,
uint8_t *encPasscode,
size_t encPasscodeBufSize,
size_t & encPasscodeLen,
GroupKeyStoreBase *groupKeyStore
)
رمز عبور را با استفاده از طرح رمزگذاری Nest Passcode رمزگذاری کنید.
جزئیات | مولفه های | [in] config | پیکربندی رمزگذاری رمز عبور مورد استفاده قرار می گیرد. | [in] keyId | شناسه کلید رمزگذاری رمز عبور درخواستی. | [in] nonce | مقدار منحصر به فردی که به رمز عبور رمزگذاری شده اختصاص داده شده است. | [in] passcode | یک اشاره گر به رمز عبور که باید رمزگذاری شود. | [in] passcodeLen | طول رمز عبور | [out] encPasscode | یک اشاره گر به بافر برای ذخیره رمز عبور رمزگذاری شده. | [in] encPasscodeBufSize | اندازه بافر برای ذخیره سازی رمز عبور رمزگذاری شده. | [out] encPasscodeLen | طول رمز عبور رمزگذاری شده | [in] groupKeyStore | یک اشاره گر به شی ذخیره کلید گروه. |
|
ارزش های بازگشتی | WEAVE_NO_ERROR | در مورد موفقیت | WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG | اگر پیکربندی رمز عبور مشخص شده پشتیبانی نمی شود. | WEAVE_ERROR_BUFFER_TOO_SMALL | اگر بافر خروجی ارائه شده برای رمز عبور رمزگذاری شده خیلی کوچک باشد. | WEAVE_ERROR_INVALID_KEY_ID | اگر کلید درخواستی دارای شناسه کلید نامعتبر باشد. | WEAVE_ERROR_INVALID_ARGUMENT | اگر رمز عبور ارائه شده خیلی کوتاه یا خیلی طولانی است. یا اگر اشاره گر به فروشگاه کلید گروهی ارائه نشده باشد یا فروشگاه کلید پلت فرم پارامترهای کلیدی نامعتبر را برمی گرداند. | other | سایر خطاهای پلتفرم خاص که توسط API های فروشگاه کلید پلتفرم برگردانده شده اند. |
|
رمز عبور را رمزگذاری کنید
WEAVE_ERROR EncryptPasscode(
uint8_t config,
uint32_t keyId,
uint32_t nonce,
const uint8_t *passcode,
size_t passcodeLen,
const uint8_t *encKey,
const uint8_t *authKey,
const uint8_t *fingerprintKey,
uint8_t *encPasscode,
size_t encPasscodeBufSize,
size_t & encPasscodeLen
)
رمز عبور را با استفاده از طرح رمزگذاری Nest Passcode رمزگذاری کنید.
جزئیات | مولفه های | [in] config | پیکربندی رمزگذاری رمز عبور Weave مورد استفاده قرار می گیرد. | [in] keyId | شناسه کلید رمزگذاری رمز عبور درخواستی. | [in] nonce | یک مقدار منحصر به فرد به رمز عبور اختصاص داده شده است. | [in] passcode | یک اشاره گر به رمز عبور که باید رمزگذاری شود. | [in] passcodeLen | طول رمز عبور | [in] encKey | اشاره گر به کلیدی که برای رمزگذاری رمز عبور استفاده می شود. طول کلید باید با الگوریتم رمزگذاری مرتبط با پیکربندی مشخص شده مطابقت داشته باشد. | [in] authKey | اشاره گر به کلیدی که برای احراز هویت رمز عبور استفاده می شود. طول کلید باید با الگوریتم احراز هویت مرتبط با پیکربندی مشخص شده مطابقت داشته باشد. | [in] fingerprintKey | یک اشاره گر به کلیدی که برای ایجاد اثر انگشت رمز عبور استفاده می شود. طول کلید باید با الگوریتم اثر انگشت مرتبط با پیکربندی مشخص شده مطابقت داشته باشد. | [out] encPasscode | اشاره گر به بافری که رمز عبور رمزگذاری شده در آن ذخیره می شود. اندازه این بافر باید حداقل kPasscodeMaxEncryptedLen باشد. | [in] encPasscodeBufSize | اندازه بافری که توسط encPasscode به آن اشاره شده است. | [out] encPasscodeLen | طول رمز عبور رمزگذاری شده |
|
ارزش های بازگشتی | WEAVE_NO_ERROR | در مورد موفقیت | WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG | اگر پیکربندی رمز عبور مشخص شده پشتیبانی نمی شود. | WEAVE_ERROR_BUFFER_TOO_SMALL | اگر بافر خروجی ارائه شده برای رمز عبور رمزگذاری شده خیلی کوچک باشد. | WEAVE_ERROR_INVALID_ARGUMENT | اگر رمز عبور ارائه شده خیلی کوتاه یا خیلی طولانی باشد. |
|
GetEncryptedPasscodeConfig
WEAVE_ERROR GetEncryptedPasscodeConfig(
const uint8_t *encPasscode,
size_t encPasscodeLen,
uint8_t & config
)
نوع پیکربندی یک رمز عبور رمزگذاری شده را دریافت کنید.
جزئیات | مولفه های | [in] encPasscode | اشاره گر به بافر حاوی رمز عبور رمزگذاری شده است. | [in] encPasscodeLen | طول رمز عبور رمزگذاری شده | [out] config | پیکربندی رمزگذاری رمز عبور Weave که توسط رمز عبور رمزگذاری شده استفاده می شود. |
|
GetEncryptedPasscodeFingerprint
WEAVE_ERROR GetEncryptedPasscodeFingerprint(
const uint8_t *encPasscode,
size_t encPasscodeLen,
uint8_t *fingerprintBuf,
size_t fingerprintBufSize,
size_t & fingerprintLen
)
مقدار اثر انگشت مرتبط با یک رمز عبور رمزگذاری شده را دریافت کنید.
جزئیات | مولفه های | [in] encPasscode | اشاره گر به بافر حاوی رمز عبور رمزگذاری شده است. | [in] encPasscodeLen | طول رمز عبور رمزگذاری شده | [in] fingerprintBuf | یک بافر برای دریافت مقدار اثر انگشت. | [in] fingerprintBufSize | اندازه بافر که با انگشت انگشت اشاره شده است. | [out] fingerprintLen | طول مقدار اثر انگشت برگشتی. |
|
GetEncryptedPasscodeKeyId
WEAVE_ERROR GetEncryptedPasscodeKeyId(
const uint8_t *encPasscode,
size_t encPasscodeLen,
uint32_t & keyId
)
شناسه کلید مورد استفاده برای رمزگذاری یک رمز عبور رمزگذاری شده را دریافت کنید.
جزئیات | مولفه های | [in] encPasscode | اشاره گر به بافر حاوی رمز عبور رمزگذاری شده است. | [in] encPasscodeLen | طول رمز عبور رمزگذاری شده | [out] keyId | شناسه کلید مورد استفاده برای رمزگذاری رمز عبور رمزگذاری شده. |
|
GetEncryptedPasscodeNonce
WEAVE_ERROR GetEncryptedPasscodeNonce(
const uint8_t *encPasscode,
size_t encPasscodeLen,
uint32_t & nonce
)
مقدار nonce مربوط به یک رمز عبور رمزگذاری شده را دریافت کنید.
جزئیات | مولفه های | [in] encPasscode | اشاره گر به بافر حاوی رمز عبور رمزگذاری شده است. | [in] encPasscodeLen | طول رمز عبور رمزگذاری شده | [out] nonce | مقدار nonce مرتبط با یک رمز عبور رمزگذاری شده. |
|
IsSupportedPasscodeEncryptionConfig
bool IsSupportedPasscodeEncryptionConfig(
uint8_t config
)
اگر پیکربندی رمزگذاری گذرواژه ارائه شده توسط APIهای رمزگذاری/رمزگشایی رمز عبور پشتیبانی شود، درست برمیگردد.