Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Kripto - Platform

Bu modülde Crypto'nun platform soyutlaması yer almaktadır.

Özet

Numaralandırmalar

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
}
enum
Bu numaralandırma, temel 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
}
enum
Bu numaralandırma, temel algoritmaları tanımlar.
otCryptoKeyStorage{
  OT_CRYPTO_KEY_STORAGE_VOLATILE,
  OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enum
Bu numaralandırma, temel depolama türlerini tanımlar.
otCryptoKeyType{
  OT_CRYPTO_KEY_TYPE_RAW,
  OT_CRYPTO_KEY_TYPE_AES,
  OT_CRYPTO_KEY_TYPE_HMAC
}
enum
Bu numaralandırma, anahtar türlerini tanımlar.

Türler

otCryptoContext Typedef
otCryptoKey Typedef
struct otCryptoKey
otCryptoKeyRef Typedef
uint32_t
Bu veri türü, anahtar başvuruyu temsil eder.
otPlatCryptoEcdsaKeyPair Typedef
otPlatCryptoEcdsaPublicKey Typedef
otPlatCryptoEcdsaSignature Typedef
otPlatCryptoSha256Hash Typedef
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
[in] aContext
AES işlemi için bağlam.
[in] aInput
Giriş arabelleğine işaretçi.
[in] aOutput
Çıkış arabelleğini işaret edin.
Döndürülen Değerler
OT_ERROR_NONE
aInput başarıyla şifrelendi.
OT_ERROR_FAILED
aInput şifrelenemedi.
OT_ERROR_INVALID_ARGS
aContext, aKey veya aOutput NULL (eski)

otPlatCryptoAesÜcretsiz

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

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

Ayrıntılar
Parametreler
[in] aContext
AES işlemi için 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 (eski)

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

AES işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
AES 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 (eski)
OT_ERROR_NO_BUFS
Bağlam atanamıyor.

otPlatCryptoAesSetAnahtarı

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

AES işlemi için anahtarı ayarlayın.

Ayrıntılar
Parametreler
[in] aContext
AES işlemi için 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 (eski)

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

PSA ITS'de depolanan bir anahtarı kaldırın.

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ı.

otPlatCryptoEcdsaGenerateAnahtarı

otError otPlatCryptoEcdsaGenerateKey(
  otPlatCryptoEcdsaKeyPair *aKeyPair
)

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

Ayrıntılar
Parametreler
[out] aKeyPair
Oluşturulan anahtar çiftini depolamak için bir ECDSA anahtar çifti yapısı 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ığı bir ECDSA anahtar çifti yapısı işaretçisi.
[out] aPublicKey
Ortak anahtarı depolamak için ECDSA ortak anahtar yapısına işaret eder.
Döndürülen Değerler
OT_ERROR_NONE
Ortak anahtar başarıyla alındı ve aBuffer güncellendi.
OT_ERROR_PARSE
Anahtar çifti DER biçimi ayrıştırılamadı (geçersiz biçim).
OT_ERROR_INVALID_ARGS
aContext NULL.

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
[in] aKeyPair
Anahtar çiftinin depolandığı bir ECDSA anahtar çifti yapısı işaretçisi.
[in] aHash
İmza hesaplaması için karma değerinin depolandığı bir SHA-256 karma yapısının işaretçisi.
[out] aSignature
Hesaplanan imzayı aktarmak için bir ECDSA imza yapısının işaretçisi.
Döndürülen Değerler
OT_ERROR_NONE
İmza başarıyla hesaplandı, aSignature güncellendi.
OT_ERROR_PARSE
Anahtar çifti DER biçimi ayrıştırılamadı (geçersiz biçim).
OT_ERROR_NO_BUFS
İmza hesaplaması için arabellek ayrılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL.

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
[in] aPublicKey
İmza doğrulaması için ortak anahtarın depolandığı ECDSA ortak anahtar yapısına yönelik bir işaretçi.
[in] aHash
İmza doğrulaması için karma değerinin depolandığı bir SHA-256 karma yapısının işaretçisi.
[in] aSignature
Doğrulanacak imza değerinin depolandığı ECDSA imza yapısının işaretçisi.
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.

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
[in] aKeyRef
Kripto işlemleri için kullanılacak anahtar referansı.
[out] aBuffer
Anahtarın dışa aktarılması gereken, arabellek 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ürmek için 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 (eski)

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
[in] aKeyRef
Kontrol edilecek anahtar referansı.
Döndürülen Değerler
TRUE
aKeyRef ile ilişkili bir anahtar var.
FALSE
aKeyRef ile ilişkili bir anahtar yok.

otPlatCryptoHkdfDeinit Dili

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

HKDF bağlamını ilk kullanıma hazırlayı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 (eski)

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
[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
Çıkış tuşunun üzerine gelin.
[in] aOutputKeyLength
Çıkış anahtarı arabelleğinin boyutu.
Döndürülen Değerler
OT_ERROR_NONE
HKDF Genişletme başarılı oldu.
OT_ERROR_FAILED
HKDF Genişletilemedi.
OT_ERROR_INVALID_ARGS
aContext NULL (eski)

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
[in] aContext
HKDF işlemi için işlem bağlamı.
[in] aSalt
HKDF için Tuz Oyunu.
[in] aSaltLength
Tuz Uzunluğu.
[in] aInputKey
İşaretçiyi giriş tuşuna getirin.
Döndürülen Değerler
OT_ERROR_NONE
HKDF Ayıklama başarılı oldu.
OT_ERROR_FAILED
HKDF Çıkarması başarısız oldu.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

HKDF bağlamını ilk kullanıma hazırlayı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 (eski)

otPlatCryptoHmacSha256 Almanya

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

HMAC işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
HMAC işleminin 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 (eski)

otPlatCryptoHmacSha256Finish

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

HMAC işlemini tamamlayın.

Ayrıntılar
Parametreler
[in] aContext
HMAC işleminin bağlamı.
[out] aBuf
Çıkış arabelleğine bir işaretçi.
[in] aBufLength
Bayt cinsinden aBuf 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 (eski)

otPlatCryptoHmacSha256

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

HMAC işlemini başlatın.

Ayrıntılar
Parametreler
[in] aContext
HMAC işleminin 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 (eski)

otPlatCryptoHmacSha256

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

HMAC işlemini başlat.

Ayrıntılar
Parametreler
[in] aContext
HMAC işleminin 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 (eski)

otPlatCryptoHmacSha256Güncelle

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şleminin bağlamı.
[in] aBuf
Giriş arabelleğine bir işaretçi.
[in] aBufLength
Bayt cinsinden aBuf 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 (eski)

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
[in,out] aKeyRef
Şifreleme işlemleri için kullanılacak anahtar referansı.
[in] aKeyType
Anahtar için Anahtar Türü kodlaması.
[in] aKeyAlgorithm
Anahtar için anahtar algoritması 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 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
[in] aPassword
Anahtar oluşturulurken kullanılacak şifre.
[in] aPasswordLen
Şifrenin uzunluğu.
[in] aSalt
Anahtar oluşturulurken kullanılacak tuz.
[in] aSaltLen
Tuz uzunluğu.
[in] aIterationCounter
Yineleme sayısı.
[in] aKeyLen
Oluşturulan anahtarın bayt cinsinden uzunluğu.
[out] aKey
Oluşturulan anahtara işaret eder.

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
[out] aBuffer
Rastgele baytlarla doldurmak için bir arabellek işaretçisi.
[in] aSize
Tampon boyutu (doldurulacak bayt sayısı).
Döndürülen Değerler
OT_ERROR_NONE
Bumper, rastgele değerlerle başarıyla dolduruldu.
OT_ERROR_FAILED
İşlem gerçekleştirilemedi.

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
[in] aContext
SHA-256 işlemi için bağlam.
Döndürülen Değerler
OT_ERROR_NONE
SHA-256 işleminin başlatması başarıyla başlatıldı.
OT_ERROR_FAILED
SHA-256 işleminin başlatması başlatılamadı.
OT_ERROR_INVALID_ARGS
aContext NULL (eski)

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şlemi için bağlam.
[in] aHash
Çıkışın arabelleğe alınması gereken bir işaretçi.
[in] aHashSize
Bayt cinsinden aHash 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 (eski)

otPlatCryptoSha256

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

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

Ayrıntılar
Parametreler
[in] aContext
SHA-256 işlemi için 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 (eski)

otPlatCryptoSha256Başlat

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

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

Ayrıntılar
Parametreler
[in] aContext
SHA-256 işlemi için 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 (eski)

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
[in] aContext
SHA-256 işlemi için bağlam.
[in] aBuf
Giriş arabelleğine bir işaretçi.
[in] aBufLength
Bayt cinsinden aBuf 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 (eski)

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.