cryptolib — 암호화 암호(cipher)¶
cryptolib 모듈은 대칭키 암호 기본 요소를 제공합니다. OpenMV Cam에서는 ssl 모듈이 활성화되어 있을 때 항상 포함됩니다.
클래스¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
암호화 또는 복호화에 적합한 새로운 AES 암호 객체를 생성합니다. 초기화 후 암호 객체는 한 방향으로만 사용할 수 있습니다.
encrypt()이후에decrypt()를 실행하는 것(또는 그 반대)은 지원되지 않습니다.매개변수:
key– 암호화/복호화 키입니다. 정확히 16바이트(AES-128) 또는 32바이트(AES-256)여야 하며, AES-192는 지원되지 않습니다. 버퍼 프로토콜 객체는 모두 허용됩니다.mode– 블록 암호 모드를 선택합니다:값
이름
설명
1ECB
Electronic Code Book. 각 16바이트 블록이 독립적으로 암호화됩니다. 동일한 평문 블록은 동일한 암호문을 생성합니다. 일반적으로 새로운 설계에는 권장되지 않습니다.
2CBC
Cipher Block Chaining. 각 블록은 암호화되기 전에 이전 암호문 블록과 XOR됩니다. 16바이트
IV가 필요합니다.ECB와 CBC는 모두 입력 길이가 16바이트 AES 블록 크기의 배수여야 합니다.
IV– CBC 모드를 위한 16바이트 초기화 벡터입니다. ECB에서는 무시됩니다.
- encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
in_buf를 암호화합니다. 버퍼 길이는 16바이트의 배수여야 하며, 호출하기 전에 직접 평문을 패딩해야 합니다.out_buf가 생략되면 결과가 새로 할당된bytes객체로 반환됩니다. 그렇지 않으면 암호문이 변경 가능한 버퍼out_buf에 기록되며, 이 버퍼는 최소한in_buf만큼 길어야 합니다. 제자리(in-place) 암호화를 위해in_buf와out_buf는 동일한 버퍼를 가리킬 수 있습니다.
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
encrypt()와 같지만 연산을 반대로 수행합니다.