Kripto - Platform
Bu modülde Crypto'nun platform soyutlaması yer almaktadır.
Özet
Numaralandırmalar |
|
---|---|
anonymous enum{
|
enum Bu numaralandırma, temel kullanım işaretlerini tanımlar. |
otCryptoKeyAlgorithm{
|
enum Bu numaralandırma, temel algoritmaları tanımlar. |
otCryptoKeyStorage{
|
enum Bu numaralandırma, temel depolama türlerini tanımlar. |
otCryptoKeyType{
|
enum Bu numaralandırma, anahtar türlerini tanımlar. |
Türler |
|
---|---|
otCryptoContext
|
Typedefstruct otCryptoContext
|
otCryptoKey
|
Typedefstruct otCryptoKey
|
otCryptoKeyRef
|
Typedefuint32_t
Bu veri türü, anahtar başvuruyu temsil eder. |
otPlatCryptoEcdsaKeyPair
|
Typedefstruct otPlatCryptoEcdsaKeyPair
|
otPlatCryptoEcdsaPublicKey
|
Typedefstruct otPlatCryptoEcdsaPublicKey
|
otPlatCryptoEcdsaSignature
|
Typedefstruct otPlatCryptoEcdsaSignature
|
otPlatCryptoSha256Hash
|
Typedefstruct otPlatCryptoSha256Hash
Bu yapı, bir SHA-256 karmasını temsil eder. |
Değişkenler |
|
---|---|
OT_TOOL_PACKED_END
|
İşlevler |
|
---|---|
otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
|
Belirtilen verileri şifreleyin.
|
otPlatCryptoAesFree(otCryptoContext *aContext)
|
AES bağlamını boşa çıkarın.
|
otPlatCryptoAesInit(otCryptoContext *aContext)
|
AES işlemini başlatın.
|
otPlatCryptoAesSetKey(otCryptoContext *aContext, const otCryptoKey *aKey)
|
AES işlemi için anahtarı ayarlayın.
|
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
|
PSA ITS'de depolanan bir anahtarı kaldırın.
|
otPlatCryptoEcdsaGenerateKey(otPlatCryptoEcdsaKeyPair *aKeyPair)
|
Çıkış arabelleğini yeni bir ECDSA anahtar çiftiyle oluşturun ve doldurun.
|
otPlatCryptoEcdsaGetPublicKey(const otPlatCryptoEcdsaKeyPair *aKeyPair, otPlatCryptoEcdsaPublicKey *aPublicKey)
|
Giriş bağlamından ilişkili ortak anahtarı alın.
|
otPlatCryptoEcdsaSign(const otPlatCryptoEcdsaKeyPair *aKeyPair, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature)
|
Giriş bağlamındaki özel anahtarı kullanarak karma oluşturma işlemi uygulanmış bir ileti için ECDSA imzasını hesaplayın.
|
otPlatCryptoEcdsaVerify(const otPlatCryptoEcdsaPublicKey *aPublicKey, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
|
Karma oluşturma işlemi uygulanmış bir mesajın ECDSA imzasını doğrulamak için giriş bağlamındaki anahtarı kullanın.
|
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
|
PSA ITS'de depolanan bir anahtarı dışa aktarın.
|
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
|
bool
PSA ITS'de iletilen anahtar referansıyla ilişkili bir anahtar olup olmadığını kontrol edin.
|
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
|
HKDF bağlamını ilk kullanıma hazırlayın.
|
otPlatCryptoHkdfExpand(otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
|
HKDF Genişletme adımını gerçekleştir.
|
otPlatCryptoHkdfExtract(otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
|
HKDF Çıkarma adımını gerçekleştirin.
|
otPlatCryptoHkdfInit(otCryptoContext *aContext)
|
HKDF bağlamını ilk kullanıma hazırlayın.
|
otPlatCryptoHmacSha256Deinit(otCryptoContext *aContext)
|
HMAC işlemini başlatın.
|
otPlatCryptoHmacSha256Finish(otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
|
HMAC işlemini tamamlayın.
|
otPlatCryptoHmacSha256Init(otCryptoContext *aContext)
|
HMAC işlemini başlatın.
|
otPlatCryptoHmacSha256Start(otCryptoContext *aContext, const otCryptoKey *aKey)
|
HMAC işlemini başlat.
|
otPlatCryptoHmacSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
|
HMAC işlemini yeni girişle güncelleyin.
|
otPlatCryptoImportKey(otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
|
Bir anahtarı PSA ITS'ye aktarın.
|
otPlatCryptoInit(void)
|
void
Crypto modülünü başlatın.
|
otPlatCryptoPbkdf2GenerateKey(const uint8_t *aPassword, uint16_t aPasswordLen, const uint8_t *aSalt, uint16_t aSaltLen, uint32_t aIterationCounter, uint16_t aKeyLen, uint8_t *aKey)
|
void
CMAC (AES-CMAC-PRF-128) kullanarak PKCS#5 PBKDF2 gerçekleştirin.
|
otPlatCryptoRandomDeinit(void)
|
void
Şifreleme açısından güvenli bir sözde rastgele sayı oluşturma aracını (CSPRNG) başlatın.
|
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
|
Belirli bir arabelleği kriptografik olarak güvenli rastgele baytlarla doldurur.
|
otPlatCryptoRandomInit(void)
|
void
Şifreleme açısından güvenli bir sözde rastgele sayı oluşturma aracını (CSPRNG) başlatın.
|
otPlatCryptoSha256Deinit(otCryptoContext *aContext)
|
SHA-256 işlemini başlatın.
|
otPlatCryptoSha256Finish(otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
|
SHA-256 işlemini tamamlayın.
|
otPlatCryptoSha256Init(otCryptoContext *aContext)
|
SHA-256 işlemini başlatın.
|
otPlatCryptoSha256Start(otCryptoContext *aContext)
|
SHA-256 işlemini başlatın.
|
otPlatCryptoSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
|
SHA-256 işlemini yeni girişle güncelleyin.
|
Yapılandırmalar |
|
---|---|
otCryptoContext |
Bu yapı, platform API'leri için bağlam nesnesini depolar. |
otCryptoKey |
Bu yapı, kripto işlemleri için gereken anahtar materyalini temsil eder. |
otPlatCryptoEcdsaKey çifti |
Bu yapı, bir ECDSA anahtar çiftini (ortak ve özel anahtarlar) temsil eder. |
otPlatCryptoEcdsaPublicKey |
Bu yapı, bir ECDSA ortak anahtarını temsil eder. |
otPlatCryptoEcdsaİmza |
Bu yapı, bir ECDSA imzasını temsil eder. |
otPlatCryptoSha256 Karması |
Bu yapı, bir SHA-256 karmasını temsil eder. |
Numaralandırmalar
anonim numaralandırma
anonymous enum
Bu numaralandırma, temel kullanım işaretlerini tanımlar.
Özellikler | |
---|---|
OT_CRYPTO_KEY_USAGE_DECRYPT
|
Anahtar Kullanımı: AES ECB. |
OT_CRYPTO_KEY_USAGE_ENCRYPT
|
Anahtar Kullanımı: Şifreleme (tedarikçi tarafından tanımlanır). |
OT_CRYPTO_KEY_USAGE_EXPORT
|
Anahtar Kullanımı: Anahtar dışa aktarılabilir. |
OT_CRYPTO_KEY_USAGE_NONE
|
Anahtar Kullanımı: Anahtar Kullanımı boş. |
OT_CRYPTO_KEY_USAGE_SIGN_HASH
|
Anahtar Kullanımı: HMAC SHA-256. |
otCryptoKeyAlgoritması
otCryptoKeyAlgorithm
Bu numaralandırma, temel algoritmaları tanımlar.
Özellikler | |
---|---|
OT_CRYPTO_KEY_ALG_AES_ECB
|
Anahtar Algoritması: AES ECB. |
OT_CRYPTO_KEY_ALG_HMAC_SHA_256
|
Anahtar Algoritması: HMAC SHA-256. |
OT_CRYPTO_KEY_ALG_VENDOR
|
Anahtar Algoritması: Tedarikçi Tanımlı. |
otCryptoKeyStorage
otCryptoKeyStorage
Bu numaralandırma, temel depolama türlerini tanımlar.
Özellikler | |
---|---|
OT_CRYPTO_KEY_STORAGE_PERSISTENT
|
Anahtar Kalıcılığı: Anahtar kalıcıdır. |
OT_CRYPTO_KEY_STORAGE_VOLATILE
|
Anahtar Kalıcılığı: Tuş değişkendir. |
otCryptoKeyType
otCryptoKeyType
Bu numaralandırma, anahtar türlerini tanımlar.
Özellikler | |
---|---|
OT_CRYPTO_KEY_TYPE_AES
|
Anahtar Türü: AES. |
OT_CRYPTO_KEY_TYPE_HMAC
|
Anahtar Türü: HMAC. |
OT_CRYPTO_KEY_TYPE_RAW
|
Anahtar Türü: Ham Veriler. |
Türler
otCryptoContext
struct otCryptoContext otCryptoContext
otCrypto anahtarı
struct otCryptoKey otCryptoKey
otCryptoKeyRef
uint32_t otCryptoKeyRef
Bu veri türü, anahtar başvuruyu temsil eder.
otPlatCryptoEcdsaKey çifti
struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair
otPlatCryptoEcdsaPublicKey
struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey
otPlatCryptoEcdsaİmza
struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature
otPlatCryptoSha256 karma
struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash
Bu yapı, bir SHA-256 karmasını temsil eder.
Değişkenler
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END
İşlevler
otPlatCryptoAesŞifreleme
otError otPlatCryptoAesEncrypt( otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput )
Belirtilen verileri şifreleyin.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoAesÜcretsiz
otError otPlatCryptoAesFree( otCryptoContext *aContext )
AES bağlamını boşa çıkarın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoAesInit
otError otPlatCryptoAesInit( otCryptoContext *aContext )
AES işlemini başlatın.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otPlatCryptoAesSetAnahtarı
otError otPlatCryptoAesSetKey( otCryptoContext *aContext, const otCryptoKey *aKey )
AES işlemi için anahtarı ayarlayın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoDestroyKey
otError otPlatCryptoDestroyKey( otCryptoKeyRef aKeyRef )
PSA ITS'de depolanan bir anahtarı kaldırın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
Döndürülen Değerler |
|
otPlatCryptoEcdsaGenerateAnahtarı
otError otPlatCryptoEcdsaGenerateKey( otPlatCryptoEcdsaKeyPair *aKeyPair )
Çıkış arabelleğini yeni bir ECDSA anahtar çiftiyle oluşturun ve doldurun.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otPlatCryptoEcdsaGetPublicKey
otError otPlatCryptoEcdsaGetPublicKey( const otPlatCryptoEcdsaKeyPair *aKeyPair, otPlatCryptoEcdsaPublicKey *aPublicKey )
Giriş bağlamından ilişkili ortak anahtarı alın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoEcdsaSign
otError otPlatCryptoEcdsaSign( const otPlatCryptoEcdsaKeyPair *aKeyPair, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature )
Giriş bağlamındaki özel anahtarı kullanarak karma oluşturma işlemi uygulanmış bir ileti için ECDSA imzasını hesaplayın.
Bu yöntem, RFC 6979'daki belirleyici dijital imza oluşturma prosedürünü kullanır.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otPlatCryptoEcdsaDoğrula
otError otPlatCryptoEcdsaVerify( const otPlatCryptoEcdsaPublicKey *aPublicKey, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature )
Karma oluşturma işlemi uygulanmış bir mesajın ECDSA imzasını doğrulamak için giriş bağlamındaki anahtarı kullanın.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otPlatCryptoDışa Aktarma Anahtarı
otError otPlatCryptoExportKey( otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen )
PSA ITS'de depolanan bir anahtarı dışa aktarın.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otPlatCryptoHasAnahtarı
bool otPlatCryptoHasKey( otCryptoKeyRef aKeyRef )
PSA ITS'de iletilen anahtar referansıyla ilişkili bir anahtar olup olmadığını kontrol edin.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
Döndürülen Değerler |
|
otPlatCryptoHkdfDeinit Dili
otError otPlatCryptoHkdfDeinit( otCryptoContext *aContext )
HKDF bağlamını ilk kullanıma hazırlayın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoHkdfGenişlet
otError otPlatCryptoHkdfExpand( otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength )
HKDF Genişletme adımını gerçekleştir.
Ayrıntılar | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||
Döndürülen Değerler |
|
otPlatCryptoHkdfÇıkarma
otError otPlatCryptoHkdfExtract( otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey )
HKDF Çıkarma adımını gerçekleştirin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otPlatCryptoHkdfInit
otError otPlatCryptoHkdfInit( otCryptoContext *aContext )
HKDF bağlamını ilk kullanıma hazırlayın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoHmacSha256 Almanya
otError otPlatCryptoHmacSha256Deinit( otCryptoContext *aContext )
HMAC işlemini başlatın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoHmacSha256Finish
otError otPlatCryptoHmacSha256Finish( otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength )
HMAC işlemini tamamlayın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoHmacSha256
otError otPlatCryptoHmacSha256Init( otCryptoContext *aContext )
HMAC işlemini başlatın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoHmacSha256
otError otPlatCryptoHmacSha256Start( otCryptoContext *aContext, const otCryptoKey *aKey )
HMAC işlemini başlat.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoHmacSha256Güncelle
otError otPlatCryptoHmacSha256Update( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength )
HMAC işlemini yeni girişle güncelleyin.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoImportAnahtarı
otError otPlatCryptoImportKey( otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen )
Bir anahtarı PSA ITS'ye aktarın.
Not: AKeyPersistence için OT_CRYPTO_KEY_STORAGE_PERSISTENT iletilirse aKeyRef
girilir ve platform, verilen AKeyRef'i kullanmalı ve değiştirmemelidir.
aKeyPersistence için OT_CRYPTO_KEY_STORAGE_VOLATILE iletilirse aKeyRef
çıkışı, ilk değer önemli değildir ve platform API'si, yeni anahtar referansı döndürecek şekilde bu değeri güncellemelidir.
Ayrıntılar | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||||||
Döndürülen Değerler |
|
Bu API, yalnızca OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE
etkinken OT core tarafından kullanılır.
otPlatŞifreleme
void otPlatCryptoInit( void )
Crypto modülünü başlatın.
otPlatCryptoPbkdf2OluşturAnahtarı
void otPlatCryptoPbkdf2GenerateKey( const uint8_t *aPassword, uint16_t aPasswordLen, const uint8_t *aSalt, uint16_t aSaltLen, uint32_t aIterationCounter, uint16_t aKeyLen, uint8_t *aKey )
CMAC (AES-CMAC-PRF-128) kullanarak PKCS#5 PBKDF2 gerçekleştirin.
Ayrıntılar | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
otPlatCryptoRandomDeinit
void otPlatCryptoRandomDeinit( void )
Şifreleme açısından güvenli bir sözde rastgele sayı oluşturma aracını (CSPRNG) başlatın.
otPlatCryptoRandomGet
otError otPlatCryptoRandomGet( uint8_t *aBuffer, uint16_t aSize )
Belirli bir arabelleği kriptografik olarak güvenli rastgele baytlarla doldurur.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
Döndürülen Değerler |
|
otPlatCryptoRandomInit
void otPlatCryptoRandomInit( void )
Şifreleme açısından güvenli bir sözde rastgele sayı oluşturma aracını (CSPRNG) başlatın.
otPlatCryptoSha256 Hindistan
otError otPlatCryptoSha256Deinit( otCryptoContext *aContext )
SHA-256 işlemini başlatın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoSha256Finish
otError otPlatCryptoSha256Finish( otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize )
SHA-256 işlemini tamamlayın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoSha256
otError otPlatCryptoSha256Init( otCryptoContext *aContext )
SHA-256 işlemini başlatın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoSha256Başlat
otError otPlatCryptoSha256Start( otCryptoContext *aContext )
SHA-256 işlemini başlatın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otPlatCryptoSha256Güncelle
otError otPlatCryptoSha256Update( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength )
SHA-256 işlemini yeni girişle güncelleyin.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
Makrolar
OT_CRYPTO_ECDSA_MAX_DER_SIZE
OT_CRYPTO_ECDSA_MAX_DER_SIZE 125
EDCSA anahtar çiftini DER biçiminde temsil etmek için maksimum arabellek boyutu (bayt cinsinden).
OT_CRYPTO_ECDSA_Public_KEY_SIZE
OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE 64
EDCSA ortak anahtarını temsil etmek için tampon boyutu (bayt cinsinden).
OT_CRYPTO_ECDSA_SIGNATURE_SIZE
OT_CRYPTO_ECDSA_SIGNATURE_SIZE 64
EDCSA imzasını temsil etmek için tampon boyutu (bayt cinsinden).
OT_CRYPTO_PBDKF2_MAX_SALT_SIZE
OT_CRYPTO_PBDKF2_MAX_SALT_SIZE 30
Maksimum PBKDF2 SALT uzunluğu: tuz ön eki (6) + genişletilmiş panid (8) + ağ adı (16)
OT_CRYPTO_SHA256_HASH_SIZE
OT_CRYPTO_SHA256_HASH_SIZE 32
SHA256 karması (bayt cinsinden).
Kaynaklar
OpenThread API Referans konularının kaynağı, GitHub'daki kaynak koddan gelir. Daha fazla bilgi edinmek veya dokümanlarımıza katkıda bulunmak için Kaynaklar'a bakın.