Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

플랫 암호화

이 모듈은 Crypto에 대한 플랫폼 추상화를 포함합니다.

요약

열거

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
}
열거
이 열거형은 키 사용 플래그를 정의합니다.
otCryptoKeyAlgorithm {
OT_CRYPTO_KEY_ALG_VENDOR ,
OT_CRYPTO_KEY_ALG_AES_ECB ,
OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
열거
이 열거형은 키 알고리즘을 정의합니다.
otCryptoKeyStorage {
OT_CRYPTO_KEY_STORAGE_VOLATILE ,
OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
열거
이 열거형은 키 저장소 유형을 정의합니다.
otCryptoKeyType {
OT_CRYPTO_KEY_TYPE_RAW ,
OT_CRYPTO_KEY_TYPE_AES ,
OT_CRYPTO_KEY_TYPE_HMAC
}
열거
이 열거형은 키 유형을 정의합니다.

형식 정의

otCryptoContext 형식 정의
otCryptoKey 형식 정의
struct otCryptoKey
otCryptoKeyRef 형식 정의
uint32_t
이 데이터 유형은 키 참조를 나타냅니다.

기능

otPlatCryptoAesEncrypt ( otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
주어진 데이터를 암호화합니다.
otPlatCryptoAesFree ( otCryptoContext *aContext)
AES 컨텍스트를 해제합니다.
otPlatCryptoAesInit ( otCryptoContext *aContext)
AES 작업을 초기화합니다.
otPlatCryptoAesSetKey ( otCryptoContext *aContext, const otCryptoKey *aKey)
AES 작동을 위한 키를 설정합니다.
otPlatCryptoDestroyKey ( otCryptoKeyRef aKeyRef)
PSA ITS에 저장된 키를 파기합니다.
otPlatCryptoExportKey ( otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
PSA ITS에 저장된 키를 내보냅니다.
otPlatCryptoHasKey ( otCryptoKeyRef aKeyRef)
bool
전달된 키 참조에 PSA ITS에 연결된 키가 있는지 확인합니다.
otPlatCryptoHkdfDeinit ( otCryptoContext *aContext)
HKDF 컨텍스트를 초기화 해제합니다.
otPlatCryptoHkdfExpand ( otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
HKDF 확장 단계를 수행합니다.
otPlatCryptoHkdfExtract ( otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
HKDF 추출 단계를 수행합니다.
otPlatCryptoHkdfInit ( otCryptoContext *aContext)
HKDF 컨텍스트를 초기화합니다.
otPlatCryptoHmacSha256Deinit ( otCryptoContext *aContext)
HMAC 작업의 초기화를 취소합니다.
otPlatCryptoHmacSha256Finish ( otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
HMAC 작업을 완료합니다.
otPlatCryptoHmacSha256Init ( otCryptoContext *aContext)
HMAC 작업을 초기화합니다.
otPlatCryptoHmacSha256Start ( otCryptoContext *aContext, const otCryptoKey *aKey)
HMAC 작업을 시작합니다.
otPlatCryptoHmacSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
새 입력으로 HMAC 작업을 업데이트합니다.
otPlatCryptoImportKey ( otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
키를 PSA ITS로 가져옵니다.
otPlatCryptoInit (void)
Crypto 모듈을 초기화합니다.
otPlatCryptoSha256Deinit ( otCryptoContext *aContext)
SHA-256 작업 초기화를 취소합니다.
otPlatCryptoSha256Finish ( otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
SHA-256 작업을 완료합니다.
otPlatCryptoSha256Init ( otCryptoContext *aContext)
SHA-256 작업을 초기화합니다.
otPlatCryptoSha256Start ( otCryptoContext *aContext)
SHA-256 작업을 시작합니다.
otPlatCryptoSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
새 입력으로 SHA-256 작업을 업데이트합니다.

구조체

otCryptoContext

이 구조는 플랫폼 API에 대한 컨텍스트 개체를 저장합니다.

otCryptoKey

이 구조는 Crypto 작업에 필요한 Key Material을 나타냅니다.

열거

익명의 열거형

 anonymous enum

이 열거형은 키 사용 플래그를 정의합니다.

속성
OT_CRYPTO_KEY_USAGE_DECRYPT

주요 사용법: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

키 사용: 암호화(공급업체 정의).

OT_CRYPTO_KEY_USAGE_EXPORT

키 사용: 키를 내보낼 수 있습니다.

OT_CRYPTO_KEY_USAGE_NONE

키 사용: 키 사용이 비어 있습니다.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

주요 용도: HMAC SHA-256.

otCryptoKey 알고리즘

 otCryptoKeyAlgorithm

이 열거형은 키 알고리즘을 정의합니다.

속성
OT_CRYPTO_KEY_ALG_AES_ECB

주요 알고리즘: AES ECB.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

주요 알고리즘: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

주요 알고리즘: 공급업체 정의.

otCryptoKeyStorage

 otCryptoKeyStorage

이 열거형은 키 저장소 유형을 정의합니다.

속성
OT_CRYPTO_KEY_STORAGE_PERSISTENT

키 지속성: 키가 지속성입니다.

OT_CRYPTO_KEY_STORAGE_VOLATILE

키 지속성: 키는 휘발성입니다.

otCryptoKeyType

 otCryptoKeyType

이 열거형은 키 유형을 정의합니다.

속성
OT_CRYPTO_KEY_TYPE_AES

키 유형: AES.

OT_CRYPTO_KEY_TYPE_HMAC

키 유형: HMAC.

OT_CRYPTO_KEY_TYPE_RAW

키 유형: 원시 데이터.

형식 정의

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

이 데이터 유형은 키 참조를 나타냅니다.

기능

otPlatCryptoAesEncrypt

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

주어진 데이터를 암호화합니다.

세부
매개변수
[in] aContext
AES 작업에 대한 컨텍스트입니다.
[in] aInput
입력 버퍼에 대한 포인터입니다.
[in] aOutput
출력 버퍼에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
성공적으로 암호화 aInput .
OT_ERROR_FAILED
암호화하지 못했습니다 aInput .
OT_ERROR_INVALID_ARGS
aContext 또는 aKey 또는 aOutput NULL했다

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

AES 컨텍스트를 해제합니다.

세부
매개변수
[in] aContext
AES 작업에 대한 컨텍스트입니다.
반환 값
OT_ERROR_NONE
AES 컨텍스트를 해제했습니다.
OT_ERROR_FAILED
AES 컨텍스트를 해제하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

AES 작업을 초기화합니다.

세부
매개변수
[in] aContext
AES 작업에 대한 컨텍스트입니다.
반환 값
OT_ERROR_NONE
AES 작업을 성공적으로 초기화했습니다.
OT_ERROR_FAILED
AES 작업을 초기화하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다
OT_ERROR_NO_BUFS
컨텍스트를 할당할 수 없습니다.

otPlatCryptoAesSetKey

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

AES 작동을 위한 키를 설정합니다.

세부
매개변수
[in] aContext
AES 작업에 대한 컨텍스트입니다.
[out] aKey
AES 작업에 사용할 키입니다.
반환 값
OT_ERROR_NONE
AES 작업을 위한 키를 성공적으로 설정했습니다.
OT_ERROR_FAILED
AES 작업을 위한 키를 설정하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext 또는 aKey NULL했다

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

PSA ITS에 저장된 키를 파기합니다.

세부
매개변수
[in] aKeyRef
파괴될 키 심판
반환 값
OT_ERROR_NONE
키를 성공적으로 파괴했습니다.
OT_ERROR_FAILED
키를 파괴하지 못했습니다.

otPlatCryptoExportKey

otError otPlatCryptoExportKey(
  otCryptoKeyRef aKeyRef,
  uint8_t *aBuffer,
  size_t aBufferLen,
  size_t *aKeyLen
)

PSA ITS에 저장된 키를 내보냅니다.

세부
매개변수
[in] aKeyRef
암호화 작업에 사용할 키 참조입니다.
[out] aBuffer
키를 내보내야 하는 버퍼에 대한 포인터입니다.
[in] aBufferLen
내보낸 키를 저장하기 위해 전달된 버퍼의 길이입니다.
[out] aKeyLen
내보낸 키의 길이를 반환하는 포인터입니다.
반환 값
OT_ERROR_NONE
성공적으로 수출 aKeyRef .
OT_ERROR_FAILED
수출 못했습니다 aKeyRef .
OT_ERROR_INVALID_ARGS
aBuffer NULL했다

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

전달된 키 참조에 PSA ITS에 연결된 키가 있는지 확인합니다.

세부
매개변수
[in] aKeyRef
확인할 키 참조입니다.
반환 값
TRUE
와 연관된 키가 aKeyRef .
FALSE
아무 관련 키가 없습니다 aKeyRef .

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

HKDF 컨텍스트를 초기화 해제합니다.

세부
매개변수
[in] aContext
HKDF 작업에 대한 컨텍스트입니다.
반환 값
OT_ERROR_NONE
HKDF 작업을 초기화 해제했습니다.
OT_ERROR_FAILED
초기화되지 않은 HKDF 작업에 실패했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다

otPlatCryptoHkdf확장

otError otPlatCryptoHkdfExpand(
  otCryptoContext *aContext,
  const uint8_t *aInfo,
  uint16_t aInfoLength,
  uint8_t *aOutputKey,
  uint16_t aOutputKeyLength
)

HKDF 확장 단계를 수행합니다.

세부
매개변수
[in] aContext
HKDF 작업에 대한 작업 컨텍스트입니다.
[in] aInfo
Info 시퀀스에 대한 포인터입니다.
[in] aInfoLength
정보 시퀀스의 길이입니다.
[out] aOutputKey
출력 키에 대한 포인터입니다.
[in] aOutputKeyLength
출력 키 버퍼의 크기입니다.
반환 값
OT_ERROR_NONE
HKDF 확장이 성공했습니다.
OT_ERROR_FAILED
HKDF 확장에 실패했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다

otPlatCryptoHkdfExtract

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

HKDF 추출 단계를 수행합니다.

세부
매개변수
[in] aContext
HKDF 작업에 대한 작업 컨텍스트입니다.
[in] aSalt
HKDF용 소금에 대한 포인터입니다.
[in] aInfoLength
소금의 길이.
[in] aInputKey
입력 키에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
HKDF 추출이 성공했습니다.
OT_ERROR_FAILED
HKDF 추출에 실패했습니다.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

HKDF 컨텍스트를 초기화합니다.

세부
매개변수
[in] aContext
HKDF 작업에 대한 컨텍스트입니다.
반환 값
OT_ERROR_NONE
AES 작업을 성공적으로 초기화했습니다.
OT_ERROR_FAILED
AES 작업을 초기화하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

HMAC 작업의 초기화를 취소합니다.

세부
매개변수
[in] aContext
HMAC 작업에 대한 컨텍스트입니다.
반환 값
OT_ERROR_NONE
HMAC 작업을 초기화 해제했습니다.
OT_ERROR_FAILED
HMAC 작업을 초기화하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다

otPlatCryptoHmacSha256Finish

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

HMAC 작업을 완료합니다.

세부
매개변수
[in] aContext
HMAC 작업에 대한 컨텍스트입니다.
[out] aBuf
출력 버퍼에 대한 포인터입니다.
[in] aBufLength
의 길이 aBuf 바이트입니다.
반환 값
OT_ERROR_NONE
HMAC 작업을 성공적으로 완료했습니다.
OT_ERROR_FAILED
HMAC 작업을 완료하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext 또는 aBuf NULL했다

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

HMAC 작업을 초기화합니다.

세부
매개변수
[in] aContext
HMAC 작업에 대한 컨텍스트입니다.
반환 값
OT_ERROR_NONE
HMAC 작업을 성공적으로 초기화했습니다.
OT_ERROR_FAILED
HMAC 작업을 초기화하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다

otPlatCryptoHmacSha256Start

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

HMAC 작업을 시작합니다.

세부
매개변수
[in] aContext
HMAC 작업에 대한 컨텍스트입니다.
[in] aKey
HMAC 작업에 사용할 키 자료입니다.
반환 값
OT_ERROR_NONE
HMAC 작업을 성공적으로 시작했습니다.
OT_ERROR_FAILED
HMAC 작업을 시작하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext 또는 aKey NULL했다

otPlatCryptoHmacSha256Update

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

새 입력으로 HMAC 작업을 업데이트합니다.

세부
매개변수
[in] aContext
HMAC 작업에 대한 컨텍스트입니다.
[in] aBuf
입력 버퍼에 대한 포인터입니다.
[in] aBufLength
의 길이 aBuf 바이트입니다.
반환 값
OT_ERROR_NONE
새로운 입력 작업으로 HMAC를 성공적으로 업데이트했습니다.
OT_ERROR_FAILED
HMAC 작업을 업데이트하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext 또는 aBuf NULL했다

otPlatCryptoImportKey

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

키를 PSA ITS로 가져옵니다.

참고 : OT_CRYPTO_KEY_STORAGE_PERSISTENT이 aKeyPersistence을 위해 전달되는 경우 aKeyRef 입력 및 플랫폼 지정된 aKeyRef를 사용해야하고 변경하지 않아야합니다. OT_CRYPTO_KEY_STORAGE_VOLATILE이 aKeyPersistence을 위해 전달되는 경우 aKeyRef 출력, 초기 값은 중요하지 않습니다 및 플랫폼 API는 새로운 키 심판을 반환을 업데이트해야합니다.

세부
매개변수
[in,out] aKeyRef
암호화 작업에 사용할 키 참조에 대한 포인터입니다.
[in] aKeyType
키에 대한 키 유형 인코딩입니다.
[in] aKeyAlgorithm
키에 대한 키 알고리즘 인코딩입니다.
[in] aKeyUsage
키에 대한 키 사용 인코딩 (조합 OT_CRYPTO_KEY_USAGE_* ).
[in] aKeyPersistence
이 키에 대한 키 지속성
[in] aKey
가져올 실제 키입니다.
[in] aKeyLen
가져올 키의 길이입니다.
반환 값
OT_ERROR_NONE
키를 성공적으로 가져왔습니다.
OT_ERROR_FAILED
키를 가져오지 못했습니다.
OT_ERROR_INVALID_ARGS
aKey NULL로 설정했다.

때 API은 OT의 핵심에 의해 사용되는 OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE 활성화됩니다.

otPlatCryptoInit

otError otPlatCryptoInit(
  void
)

Crypto 모듈을 초기화합니다.

세부
반환 값
OT_ERROR_NONE
암호화 모듈을 성공적으로 초기화했습니다.
OT_ERROR_FAILED
암호화 모듈을 초기화하지 못했습니다.

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

SHA-256 작업의 초기화를 취소합니다.

세부
매개변수
[in] aContext
SHA-256 작업에 대한 컨텍스트입니다.
반환 값
OT_ERROR_NONE
SHA-256 작업을 초기화 해제했습니다.
OT_ERROR_FAILED
초기화되지 않은 SHA-256 작업에 실패했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다

otPlatCryptoSha256마감

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

SHA-256 작업을 완료합니다.

세부
매개변수
[in] aContext
SHA-256 작업에 대한 컨텍스트입니다.
[in] aContextSize
컨텍스트 크기 SHA-256 작업.
[in] aHash
해시를 저장해야 하는 출력 버퍼에 대한 포인터입니다.
[in] aHashSize
의 길이 aHash 바이트입니다.
반환 값
OT_ERROR_NONE
SHA-256 작업을 성공적으로 완료했습니다.
OT_ERROR_FAILED
SHA-256 작업을 완료하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext 또는 aHash NULL했다

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

SHA-256 작업을 초기화합니다.

세부
매개변수
[in] aContext
SHA-256 작업에 대한 컨텍스트입니다.
반환 값
OT_ERROR_NONE
SHA-256 작업을 성공적으로 초기화했습니다.
OT_ERROR_FAILED
SHA-256 작업을 초기화하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다

otPlatCryptoSha256Start

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

SHA-256 작업을 시작합니다.

세부
매개변수
[in] aContext
SHA-256 작업에 대한 컨텍스트입니다.
반환 값
OT_ERROR_NONE
SHA-256 작업을 성공적으로 시작했습니다.
OT_ERROR_FAILED
SHA-256 작업을 시작하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext NULL했다

otPlatCryptoSha256업데이트

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

새 입력으로 SHA-256 작업을 업데이트합니다.

세부
매개변수
[in] aContext
SHA-256 작업에 대한 컨텍스트입니다.
[in] aBuf
입력 버퍼에 대한 포인터입니다.
[in] aBufLength
의 길이 aBuf 바이트입니다.
반환 값
OT_ERROR_NONE
새로운 입력 작업으로 SHA-256을 성공적으로 업데이트했습니다.
OT_ERROR_FAILED
SHA-256 작업을 업데이트하지 못했습니다.
OT_ERROR_INVALID_ARGS
aContext 또는 aBuf NULL했다