Kripto - Platform

Bu modülde Crypto için platform soyutlaması yer alır.

Özet

Sıralamalar

anonymous enum{
  OT_CRYPTO_KEY_USAGE_NONE = 0,
  OT_CRYPTO_KEY_USAGE_EXPORT = 1 << 0,
  OT_CRYPTO_KEY_USAGE_ENCRYPT = 1 << 1,
  OT_CRYPTO_KEY_USAGE_DECRYPT = 1 << 2,
  OT_CRYPTO_KEY_USAGE_SIGN_HASH = 1 << 3,
  OT_CRYPTO_KEY_USAGE_VERIFY_HASH = 1 << 4
}
enum
Anahtar kullanım işaretlerini tanımlar.
otCryptoKeyAlgorithm{
  OT_CRYPTO_KEY_ALG_VENDOR,
  OT_CRYPTO_KEY_ALG_AES_ECB,
  OT_CRYPTO_KEY_ALG_HMAC_SHA_256,
  OT_CRYPTO_KEY_ALG_ECDSA
}
enum
Anahtar algoritmalarını tanımlar.
otCryptoKeyStorage{
  OT_CRYPTO_KEY_STORAGE_VOLATILE,
  OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enum
Anahtar depolama türlerini tanımlar.
otCryptoKeyType{
  OT_CRYPTO_KEY_TYPE_RAW,
  OT_CRYPTO_KEY_TYPE_AES,
  OT_CRYPTO_KEY_TYPE_HMAC,
  OT_CRYPTO_KEY_TYPE_ECDSA
}
enum
Anahtar türlerini tanımlar.

Türdefler

otCryptoContext typedef
otCryptoKey typedef
struct otCryptoKey
otCryptoKeyRef typedef
uint32_t
Bu veri türü, anahtar referansını temsil eder.
otPlatCryptoEcdsaKeyPair typedef
otPlatCryptoEcdsaPublicKey typedef
otPlatCryptoEcdsaSignature typedef
otPlatCryptoSha256Hash typedef
SHA-256 karmasını temsil eder.

Değişkenler

OT_TOOL_PACKED_END

İşlevler

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Verilen 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şleminin anahtarını ayarlayın.
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
PSA ITS'de depolanan bir anahtarı kaldırma.
otPlatCryptoEcdsaExportPublicKey(otCryptoKeyRef aKeyRef, otPlatCryptoEcdsaPublicKey *aPublicKey)
Geçirilen anahtar referansından ilişkili ortak anahtarı alın.
otPlatCryptoEcdsaGenerateAndImportKey(otCryptoKeyRef aKeyRef)
Referans başarılı olduğunda yeni bir ECDSA anahtar çifti oluşturun ve içe aktarın.
otPlatCryptoEcdsaGenerateKey(otPlatCryptoEcdsaKeyPair *aKeyPair)
Çıktı 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 iletinin ECDSA imzasını hesaplayın.
otPlatCryptoEcdsaSignUsingKeyRef(otCryptoKeyRef aKeyRef, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature)
Karma oluşturma işlemi uygulanmış bir iletinin ECDSA imzasını, iletilen anahtar referansını kullanarak hesaplayın.
otPlatCryptoEcdsaVerify(const otPlatCryptoEcdsaPublicKey *aPublicKey, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
Karma oluşturma işlemi uygulanmış bir iletinin ECDSA imzasını doğrulamak için giriş bağlamındaki anahtarı kullanın.
otPlatCryptoEcdsaVerifyUsingKeyRef(otCryptoKeyRef aKeyRef, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
Karma oluşturma işlemi uygulanmış bir iletinin ECDSA imzasını doğrulamak için keyref'i 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
İletilen anahtarın PSA ITS'de ilişkilendirilmiş bir anahtarı olup olmadığını kontrol edin.
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
HKDF bağlamını yeniden başlatı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ştirin.
otPlatCryptoHkdfExtract(otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
HKDF Ayıklama adımını gerçekleştirin.
otPlatCryptoHkdfInit(otCryptoContext *aContext)
HKDF bağlamını başlatı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ın.
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)
PSA ITS'ye bir anahtar 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)
CMAC (AES-CMAC-PRF-128) kullanarak PKCS#5 PBKDF2 gerçekleştirin.
otPlatCryptoRandomDeinit(void)
void
Kriptografik olarak güvenli sözde rastgele sayı oluşturucuyu (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
Kriptografik olarak güvenli sözde rastgele sayı oluşturucuyu (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ılar

otCryptoContext

Platform API'leri için bağlam nesnesini depolar.

otCryptoKey

Şifreleme işlemleri için gereken Anahtar Malzemeyi temsil eder.

otPlatCryptoEcdsaKeyPair

Bir ECDSA anahtar çiftini (ortak ve özel anahtarlar) temsil eder.

otPlatCryptoEcdsaPublicKey

Bir ECDSA ortak anahtarını temsil eder.

otPlatCryptoEcdsaSignature

ECDSA imzasını temsil eder.

otPlatCryptoSha256Hash

SHA-256 karmasını temsil eder.

Sıralamalar

anonim sıralama

 anonymous enum

Anahtar 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 firma tarafından tanımlanmış).

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ı: İmza Karması.

OT_CRYPTO_KEY_USAGE_VERIFY_HASH

Anahtar Kullanımı: Karmayı Doğrulama.

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

Anahtar algoritmalarını tanımlar.

Özellikler
OT_CRYPTO_KEY_ALG_AES_ECB

Anahtar Algoritması: AES ECB.

OT_CRYPTO_KEY_ALG_ECDSA

Anahtar Algoritması: ECDSA.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Anahtar Algoritması: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

Anahtar Algoritması: Satıcı Tanımlı.

otCryptoKeyStorage

 otCryptoKeyStorage

Anahtar 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ığı: Anahtar değişkendir.

otCryptoKeyType

 otCryptoKeyType

Anahtar türlerini tanımlar.

Özellikler
OT_CRYPTO_KEY_TYPE_AES

Anahtar Türü: AES.

OT_CRYPTO_KEY_TYPE_ECDSA

Anahtar Türü: ECDSA.

OT_CRYPTO_KEY_TYPE_HMAC

Anahtar Türü: HMAC.

OT_CRYPTO_KEY_TYPE_RAW

Anahtar Türü: Ham Veri.

Türdefler

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

Bu veri türü, anahtar referansını temsil eder.

otPlatCryptoEcdsaKeyPair

struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair

otPlatCryptoEcdsaPublicKey

struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey

otPlatCryptoEcdsaSignature

struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature

otPlatCryptoSha256Hash

struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash

SHA-256 karmasını temsil eder.

Değişkenler

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END

İşlevler

otPlatCryptoAesEncrypt

otError otPlatCryptoAesEncrypt(
  otCryptoContext *aContext,
  const uint8_t *aInput,
  uint8_t *aOutput
)

Verilen verileri şifreleyin.

Ayrıntılar
Parametreler
[in] aContext
AES işleminin bağlamı.
[in] aInput
Giriş arabelleğinin üzerine gelin.
[in] aOutput
İşaretçi çıkış arabelleğinin üzerine gelin.
Döndürülen Değerler
OT_ERROR_NONE
aInput başarıyla şifrelendi.
OT_ERROR_FAILED
aInput şifrelenemedi.
OT_ERROR_INVALID_ARGS
aContext veya aKey ya da aOutput NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

AES bağlamını boşa çıkarın.

Ayrıntılar
Parametreler
[in] aContext
AES işleminin bağlamı.
Döndürülen Değerler
OT_ERROR_NONE
AES bağlamı başarıyla serbest bırakıldı.
OT_ERROR_FAILED
AES bağlamı serbest bırakılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

AES işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
AES işleminin bağlamı.
Döndürülen Değerler
OT_ERROR_NONE
AES işlemi başarıyla başlatıldı.
OT_ERROR_FAILED
AES işlemi başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti
OT_ERROR_NO_BUFS
Bağlam tahsis edilemiyor.

otPlatCryptoAesSetKey

otError otPlatCryptoAesSetKey(
  otCryptoContext *aContext,
  const otCryptoKey *aKey
)

AES işleminin anahtarını ayarlayın.

Ayrıntılar
Parametreler
[in] aContext
AES işleminin bağlamı.
[out] aKey
AES işlemi için kullanılacak anahtar.
Döndürülen Değerler
OT_ERROR_NONE
AES işlemi için anahtar başarıyla ayarlandı.
OT_ERROR_FAILED
AES işlemi için anahtar ayarlanamadı.
OT_ERROR_INVALID_ARGS
aContext veya aKey NULL değerine sahipti

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

PSA ITS'de depolanan bir anahtarı kaldırma.

Ayrıntılar
Parametreler
[in] aKeyRef
Kaldırılacak anahtar referansı
Döndürülen Değerler
OT_ERROR_NONE
Anahtar başarıyla kaldırıldı.
OT_ERROR_FAILED
Anahtar kaldırılamadı.

otPlatCryptoEcdsaExportPublicKey

otError otPlatCryptoEcdsaExportPublicKey(
  otCryptoKeyRef aKeyRef,
  otPlatCryptoEcdsaPublicKey *aPublicKey
)

Geçirilen anahtar referansından ilişkili ortak anahtarı alın.

Ortak anahtar, kullanılan şifreleme arka uç kitaplığına (OPENTHREAD_CONFIG_CRYPTO_LIB) bağlı olarak farklı şekilde depolanır.

Bu API, ortak anahtarı, sıkıştırılmamış bir eğri noktasının bayt dizisi gösterimi olarak döndürdüğünden emin olmalıdır (RFC 6605 - sn 4)

Ayrıntılar
Parametreler
[in] aKeyRef
Anahtar çiftinin depolandığı yuvaya ilişkin Anahtar Referansı.
[out] aPublicKey
Ortak anahtarı depolamak için ECDSA ortak anahtar yapısına işaret eden bir işaretçi.
Döndürülen Değerler
OT_ERROR_NONE
Ortak anahtar başarıyla alındı ve aBuffer güncellendi.
OT_ERROR_PARSE
Anahtar/çift DER biçimi ayrıştırılamadı (geçersiz biçim).
OT_ERROR_INVALID_ARGS
aContext BOŞ.

otPlatCryptoEcdsaGenerateAndImportKey

otError otPlatCryptoEcdsaGenerateAndImportKey(
  otCryptoKeyRef aKeyRef
)

Referans başarılı olduğunda yeni bir ECDSA anahtar çifti oluşturun ve içe aktarın.

Ayrıntılar
Parametreler
[in] aKeyRef
Anahtar çiftinin depolandığı yuvaya ilişkin Anahtar Referansı.
Döndürülen Değerler
OT_ERROR_NONE
Yeni bir anahtar çifti başarıyla oluşturuldu.
OT_ERROR_NO_BUFS
Anahtar oluşturma için arabellek tahsis edilemedi.
OT_ERROR_NOT_CAPABLE
Özellik desteklenmiyor.
OT_ERROR_FAILED
Anahtar çifti oluşturulamadı.

otPlatCryptoEcdsaGenerateKey

otError otPlatCryptoEcdsaGenerateKey(
  otPlatCryptoEcdsaKeyPair *aKeyPair
)

Çıktı arabelleğini yeni bir ECDSA anahtar çiftiyle oluşturun ve doldurun.

Ayrıntılar
Parametreler
[out] aKeyPair
Oluşturulan anahtar çiftini depolamak için ECDSA anahtar çifti yapısının işaretçisi.
Döndürülen Değerler
OT_ERROR_NONE
Yeni bir anahtar çifti başarıyla oluşturuldu.
OT_ERROR_NO_BUFS
Anahtar oluşturma için arabellek tahsis edilemedi.
OT_ERROR_NOT_CAPABLE
Özellik desteklenmiyor.
OT_ERROR_FAILED
Anahtar çifti oluşturulamadı.

otPlatCryptoEcdsaGetPublicKey

otError otPlatCryptoEcdsaGetPublicKey(
  const otPlatCryptoEcdsaKeyPair *aKeyPair,
  otPlatCryptoEcdsaPublicKey *aPublicKey
)

Giriş bağlamından ilişkili ortak anahtarı alın.

Ayrıntılar
Parametreler
[in] aKeyPair
Anahtar çiftinin depolandığı ECDSA anahtar çifti yapısının işaretçisi.
[out] aPublicKey
Ortak anahtarı depolamak için ECDSA ortak anahtar yapısına işaret eden bir işaretçi.
Döndürülen Değerler
OT_ERROR_NONE
Ortak anahtar başarıyla alındı ve aBuffer güncellendi.
OT_ERROR_PARSE
Anahtar/çift DER biçimi ayrıştırılamadı (geçersiz biçim).
OT_ERROR_INVALID_ARGS
aContext BOŞ.

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 iletinin ECDSA imzasını hesaplayın.

RFC 6979'daki belirleyici dijital imza oluşturma yordamını kullanır.

Ayrıntılar
Parametreler
[in] aKeyPair
Anahtar çiftinin depolandığı ECDSA anahtar çifti yapısının işaretçisi.
[in] aHash
İmza hesaplamasına ilişkin karma değerinin saklandığı bir SHA-256 karma yapısına işaretçi.
[out] aSignature
Hesaplanan imzanın çıktısını almak için ECDSA imza yapısına işaret eden bir işaretçi.
Döndürülen Değerler
OT_ERROR_NONE
İmza başarıyla hesaplandı ve aSignature güncellendi.
OT_ERROR_PARSE
Anahtar/çift DER biçimi ayrıştırılamadı (geçersiz biçim).
OT_ERROR_NO_BUFS
İmza hesaplaması için arabellek tahsis edilemedi.
OT_ERROR_INVALID_ARGS
aContext BOŞ.

otPlatCryptoEcdsaSignUsingKeyRef

otError otPlatCryptoEcdsaSignUsingKeyRef(
  otCryptoKeyRef aKeyRef,
  const otPlatCryptoSha256Hash *aHash,
  otPlatCryptoEcdsaSignature *aSignature
)

Karma oluşturma işlemi uygulanmış bir iletinin ECDSA imzasını, iletilen anahtar referansını kullanarak hesaplayın.

RFC 6979'daki belirleyici dijital imza oluşturma yordamını kullanır.

Ayrıntılar
Parametreler
[in] aKeyRef
Anahtar çiftinin depolandığı yuvaya ilişkin Anahtar Referansı.
[in] aHash
İmza hesaplamasına ilişkin karma değerinin saklandığı bir SHA-256 karma yapısına işaretçi.
[out] aSignature
Hesaplanan imzanın çıktısını almak için ECDSA imza yapısına işaret eden bir işaretçi.
Döndürülen Değerler
OT_ERROR_NONE
İmza başarıyla hesaplandı ve aSignature güncellendi.
OT_ERROR_PARSE
Anahtar/çift DER biçimi ayrıştırılamadı (geçersiz biçim).
OT_ERROR_NO_BUFS
İmza hesaplaması için arabellek tahsis edilemedi.
OT_ERROR_INVALID_ARGS
aContext BOŞ.

otPlatCryptoEcdsaVerify

otError otPlatCryptoEcdsaVerify(
  const otPlatCryptoEcdsaPublicKey *aPublicKey,
  const otPlatCryptoSha256Hash *aHash,
  const otPlatCryptoEcdsaSignature *aSignature
)

Karma oluşturma işlemi uygulanmış bir iletinin ECDSA imzasını doğrulamak için giriş bağlamındaki anahtarı kullanın.

Ayrıntılar
Parametreler
[in] aPublicKey
İmza doğrulaması için ortak anahtarın depolandığı bir ECDSA ortak anahtar yapısına işaret eden işaretçi.
[in] aHash
İmza doğrulamasına ilişkin karma değerinin saklandığı bir SHA-256 karma yapısına işaret eder.
[in] aSignature
Doğrulanacak imza değerinin depolandığı bir ECDSA imza yapısına işaret eden bir işaretçi.
Döndürülen Değerler
OT_ERROR_NONE
İmza başarıyla doğrulandı.
OT_ERROR_SECURITY
İmza geçersiz.
OT_ERROR_INVALID_ARGS
Anahtar veya karma geçersiz.
OT_ERROR_NO_BUFS
İmza doğrulaması için arabellek tahsis edilemedi.

otPlatCryptoEcdsaVerifyUsingKeyRef

otError otPlatCryptoEcdsaVerifyUsingKeyRef(
  otCryptoKeyRef aKeyRef,
  const otPlatCryptoSha256Hash *aHash,
  const otPlatCryptoEcdsaSignature *aSignature
)

Karma oluşturma işlemi uygulanmış bir iletinin ECDSA imzasını doğrulamak için keyref'i kullanın.

Ayrıntılar
Parametreler
[in] aKeyRef
Anahtar çiftinin depolandığı yuvaya ilişkin Anahtar Referansı.
[in] aHash
İmza doğrulamasına ilişkin karma değerinin saklandığı bir SHA-256 karma yapısına işaret eder.
[in] aSignature
Doğrulanacak imza değerinin depolandığı bir ECDSA imza yapısına işaret eden bir işaretçi.
Döndürülen Değerler
OT_ERROR_NONE
İmza başarıyla doğrulandı.
OT_ERROR_SECURITY
İmza geçersiz.
OT_ERROR_INVALID_ARGS
Anahtar veya karma geçersiz.
OT_ERROR_NO_BUFS
İmza doğrulaması için arabellek tahsis edilemedi.

otPlatCryptoExportKey

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
[in] aKeyRef
Şifreleme işlemleri için kullanılacak anahtar referansı.
[out] aBuffer
Anahtarın dışa aktarılması gereken arabelleğin işaretçisi.
[in] aBufferLen
Dışa aktarılan anahtarı depolamak için iletilen arabelleğin uzunluğu.
[out] aKeyLen
Dışa aktarılan anahtarın uzunluğunu döndüren işaretçi.
Döndürülen Değerler
OT_ERROR_NONE
aKeyRef başarıyla dışa aktarıldı.
OT_ERROR_FAILED
aKeyRef dışa aktarılamadı.
OT_ERROR_INVALID_ARGS
aBuffer NULL değerine sahipti

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

İletilen anahtarın PSA ITS'de ilişkilendirilmiş bir anahtarı olup olmadığını kontrol edin.

Ayrıntılar
Parametreler
[in] aKeyRef
Kontrol edilecek Temel Ref.
Döndürülen Değerler
TRUE
aKeyRef ile ilişkilendirilmiş bir anahtar var.
FALSE
aKeyRef ile ilişkili anahtar yok.

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

HKDF bağlamını yeniden başlatın.

Ayrıntılar
Parametreler
[in] aContext
HKDF işlemi için bağlam.
Döndürülen Değerler
OT_ERROR_NONE
HKDF işlemi başarıyla başlatıldı.
OT_ERROR_FAILED
HKDF işlemi başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti

otPlatCryptoHkdfExpand

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ştirin.

Ayrıntılar
Parametreler
[in] aContext
HKDF işlemi için işlem bağlamı.
[in] aInfo
Bilgi dizisinin üzerine gelin.
[in] aInfoLength
Bilgi dizisinin uzunluğu.
[out] aOutputKey
İşaretçiyi çıkış Anahtarı'nın üzerine getirin.
[in] aOutputKeyLength
Çıkış anahtarı arabelleğinin boyutu.
Döndürülen Değerler
OT_ERROR_NONE
HKDF Genişletmesi başarılı oldu.
OT_ERROR_FAILED
HKDF Genişletmesi başarısız oldu.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti

otPlatCryptoHkdfExtract

otError otPlatCryptoHkdfExtract(
  otCryptoContext *aContext,
  const uint8_t *aSalt,
  uint16_t aSaltLength,
  const otCryptoKey *aInputKey
)

HKDF Ayıklama adımını gerçekleştirin.

Ayrıntılar
Parametreler
[in] aContext
HKDF işlemi için işlem bağlamı.
[in] aSalt
HKDF için Tuz işaretçisi.
[in] aSaltLength
Tuz Uzunluğu.
[in] aInputKey
Giriş tuşunun işaretçisi.
Döndürülen Değerler
OT_ERROR_NONE
HKDF Ayıklama işlemi başarılı.
OT_ERROR_FAILED
HKDF Çıkarması başarısız oldu.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

HKDF bağlamını başlatın.

Ayrıntılar
Parametreler
[in] aContext
HKDF işlemi için bağlam.
Döndürülen Değerler
OT_ERROR_NONE
AES işlemi başarıyla başlatıldı.
OT_ERROR_FAILED
AES işlemi başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

HMAC işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
HMAC işlemi bağlamı.
Döndürülen Değerler
OT_ERROR_NONE
HMAC işlemi başarıyla başlatıldı.
OT_ERROR_FAILED
HMAC işlemi başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti

otPlatCryptoHmacSha256Finish

otError otPlatCryptoHmacSha256Finish(
  otCryptoContext *aContext,
  uint8_t *aBuf,
  size_t aBufLength
)

HMAC işlemini tamamlayın.

Ayrıntılar
Parametreler
[in] aContext
HMAC işlemi bağlamı.
[out] aBuf
Çıkış arabelleğinin işaretçisi.
[in] aBufLength
aBuf dosyasının bayt cinsinden uzunluğu.
Döndürülen Değerler
OT_ERROR_NONE
HMAC işlemi başarıyla tamamlandı.
OT_ERROR_FAILED
HMAC işlemi tamamlanamadı.
OT_ERROR_INVALID_ARGS
aContext veya aBuf NULL değerine sahipti

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

HMAC işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
HMAC işlemi bağlamı.
Döndürülen Değerler
OT_ERROR_NONE
HMAC işlemi başarıyla başlatıldı.
OT_ERROR_FAILED
HMAC işlemi başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti

otPlatCryptoHmacSha256Start

otError otPlatCryptoHmacSha256Start(
  otCryptoContext *aContext,
  const otCryptoKey *aKey
)

HMAC işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
HMAC işlemi bağlamı.
[in] aKey
HMAC işlemi için kullanılacak anahtar materyali.
Döndürülen Değerler
OT_ERROR_NONE
HMAC işlemi başarıyla başlatıldı.
OT_ERROR_FAILED
HMAC işlemi başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext veya aKey NULL değerine sahipti

otPlatCryptoHmacSha256Update

otError otPlatCryptoHmacSha256Update(
  otCryptoContext *aContext,
  const void *aBuf,
  uint16_t aBufLength
)

HMAC işlemini yeni girişle güncelleyin.

Ayrıntılar
Parametreler
[in] aContext
HMAC işlemi bağlamı.
[in] aBuf
Giriş arabelleğinin işaretçisi.
[in] aBufLength
aBuf dosyasının bayt cinsinden uzunluğu.
Döndürülen Değerler
OT_ERROR_NONE
HMAC yeni giriş işlemiyle başarıyla güncellendi.
OT_ERROR_FAILED
HMAC işlemi güncellenemedi.
OT_ERROR_INVALID_ARGS
aContext veya aBuf NULL değerine sahipti

otPlatCryptoImportKey

otError otPlatCryptoImportKey(
  otCryptoKeyRef *aKeyRef,
  otCryptoKeyType aKeyType,
  otCryptoKeyAlgorithm aKeyAlgorithm,
  int aKeyUsage,
  otCryptoKeyStorage aKeyPersistence,
  const uint8_t *aKey,
  size_t aKeyLen
)

PSA ITS'ye bir anahtar aktarın.

aKeyPersistence için OT_CRYPTO_KEY_STORAGE_VOLATILE iletilirse, aKeyRef çıkışı yapılır, ilk değer önemli değildir ve platform API'sinin yeni anahtar referansını döndürmek için bunu güncellemesi GEREKİR.

Ayrıntılar
Parametreler
[in,out] aKeyRef
Şifreleme işlemleri için kullanılacak anahtar başvurusunun işaretçisi.
[in] aKeyType
Anahtar için Anahtar Türü kodlaması.
[in] aKeyAlgorithm
Anahtar için anahtar algoritma kodlaması.
[in] aKeyUsage
Anahtar için anahtar kullanımı kodlaması (OT_CRYPTO_KEY_USAGE_* kombinasyonları).
[in] aKeyPersistence
Bu anahtar için Anahtar Kalıcılığı
[in] aKey
İçe aktarılacak gerçek anahtar.
[in] aKeyLen
İçe aktarılacak anahtarın uzunluğu.
Döndürülen Değerler
OT_ERROR_NONE
Anahtar başarıyla içe aktarıldı.
OT_ERROR_FAILED
Anahtar içe aktarılamadı.
OT_ERROR_INVALID_ARGS
aKey NULL olarak ayarlandı.

Bu API yalnızca OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE etkinleştirildiğinde OT çekirdeği tarafından kullanılır.

otPlatCryptoInit

void otPlatCryptoInit(
  void
)

Crypto modülünü başlatın.

otPlatCryptoPbkdf2OluşturmaAnahtarı

otError 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
[in] aPassword
Anahtar oluşturulurken kullanılacak şifre.
[in] aPasswordLen
Şifrenin uzunluğu.
[in] aSalt
Anahtar oluşturulurken kullanılacak takviye değer.
[in] aSaltLen
Tuz uzunluğu.
[in] aIterationCounter
Yineleme sayısı.
[in] aKeyLen
Oluşturulan anahtarın bayt cinsinden uzunluğu.
[out] aKey
Oluşturulan anahtarın işaretçisi.
Döndürülen Değerler
OT_ERROR_NONE
Yeni bir anahtar çifti başarıyla oluşturuldu.
OT_ERROR_NO_BUFS
Anahtar oluşturma için arabellek tahsis edilemedi.
OT_ERROR_NOT_CAPABLE
Özellik desteklenmiyor.
OT_ERROR_FAILED
Anahtar oluşturulamadı.

otPlatCryptoRandomDeinit

void otPlatCryptoRandomDeinit(
  void
)

Kriptografik olarak güvenli sözde rastgele sayı oluşturucuyu (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
[out] aBuffer
Rastgele baytlarla doldurulacak bir arabelleğin işaretçisi.
[in] aSize
Arabellek boyutu (doldurulacak bayt sayısı).
Döndürülen Değerler
OT_ERROR_NONE
Arabellek rastgele değerlerle başarıyla dolduruldu.
OT_ERROR_FAILED
İşlem gerçekleştirilemedi.

otPlatCryptoRandomInit

void otPlatCryptoRandomInit(
  void
)

Kriptografik olarak güvenli sözde rastgele sayı oluşturucuyu (CSPRNG) başlatın.

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

SHA-256 işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
SHA-256 işleminin bağlamı.
Döndürülen Değerler
OT_ERROR_NONE
SHA-256 işlemi başarıyla başlatıldı.
OT_ERROR_FAILED
SHA-256 işlemi başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti

otPlatCryptoSha256Finish

otError otPlatCryptoSha256Finish(
  otCryptoContext *aContext,
  uint8_t *aHash,
  uint16_t aHashSize
)

SHA-256 işlemini tamamlayın.

Ayrıntılar
Parametreler
[in] aContext
SHA-256 işleminin bağlamı.
[in] aHash
Karmanın depolanması gereken çıkış arabelleğine işaret eder.
[in] aHashSize
aHash dosyasının bayt cinsinden uzunluğu.
Döndürülen Değerler
OT_ERROR_NONE
SHA-256 işlemi başarıyla tamamlandı.
OT_ERROR_FAILED
SHA-256 işlemi tamamlanamadı.
OT_ERROR_INVALID_ARGS
aContext veya aHash NULL değerine sahipti

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

SHA-256 işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
SHA-256 işleminin bağlamı.
Döndürülen Değerler
OT_ERROR_NONE
SHA-256 işlemi başarıyla başlatıldı.
OT_ERROR_FAILED
SHA-256 işlemi başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti

otPlatCryptoSha256Start

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

SHA-256 işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
SHA-256 işleminin bağlamı.
Döndürülen Değerler
OT_ERROR_NONE
SHA-256 işlemi başarıyla başlatıldı.
OT_ERROR_FAILED
SHA-256 işlemi başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL değerine sahipti

otPlatCryptoSha256Update

otError otPlatCryptoSha256Update(
  otCryptoContext *aContext,
  const void *aBuf,
  uint16_t aBufLength
)

SHA-256 işlemini yeni girişle güncelleyin.

Ayrıntılar
Parametreler
[in] aContext
SHA-256 işleminin bağlamı.
[in] aBuf
Giriş arabelleğinin işaretçisi.
[in] aBufLength
aBuf dosyasının bayt cinsinden uzunluğu.
Döndürülen Değerler
OT_ERROR_NONE
SHA-256, yeni giriş işlemiyle başarıyla güncellendi.
OT_ERROR_FAILED
SHA-256 işlemi güncellenemedi.
OT_ERROR_INVALID_ARGS
aContext veya aBuf NULL değerine sahipti

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 eden arabellek boyutu (bayt cinsinden).

OT_CRYPTO_ECDSA_SIGNATURE_SIZE

 OT_CRYPTO_ECDSA_SIGNATURE_SIZE 64

EDCSA imzasını temsil eden arabellek boyutu (bayt cinsinden).

OT_CRYPTO_PBDKF2_MAX_SALT_SIZE

 OT_CRYPTO_PBDKF2_MAX_SALT_SIZE 30

Maks. PBKDF2 SALT uzunluğu: takviye değer (6) + genişletilmiş kaydırma çubuğu (8) + ağ adı (16)

OT_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

SHA256 karmasının uzunluğu (bayt cinsinden).

Kaynaklar

OpenThread API Referans konuları, GitHub'da bulunan kaynak koddan gelir. Daha fazla bilgi edinmek veya dokümanlarımıza katkıda bulunmak için Kaynaklar bölümüne bakın.