cryptolib --- การเข้ารหัสแบบสมมาตร¶
โมดูล cryptolib ให้ primitive การเข้ารหัสแบบสมมาตร บน OpenMV Cams โมดูลนี้จะรวมอยู่ด้วยเสมอเมื่อเปิดใช้งานโมดูล ssl
คลาส¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
สร้างออบเจกต์ cipher AES ใหม่ที่เหมาะสำหรับการเข้ารหัสหรือถอดรหัส หลังจากการเริ่มต้น ออบเจกต์ cipher สามารถใช้ได้เพียงทิศทางเดียวเท่านั้น --- การเรียก
decrypt()หลังจากencrypt()(หรือในทางกลับกัน) ไม่ได้รับการรองรับพารามิเตอร์:
key-- คีย์สำหรับการเข้า/ถอดรหัส ต้องมีขนาดเป็น 16 ไบต์ (AES-128) หรือ 32 ไบต์ (AES-256) เท่านั้น; AES-192 ไม่ได้รับการรองรับ รองรับออบเจกต์ที่ใช้โปรโตคอล buffermode-- เลือกโหมดการเข้ารหัสบล็อก:ค่า
ชื่อ
คำอธิบาย
1ECB
Electronic Code Book แต่ละบล็อก 16 ไบต์จะถูกเข้ารหัสอิสระ; บล็อกข้อความเดียวกันจะให้ผลรหัสเดียวกัน โดยทั่วไปไม่แนะนำสำหรับการออกแบบใหม่
2CBC
Cipher Block Chaining แต่ละบล็อกจะถูก XOR กับบล็อกข้อความรหัสก่อนหน้าก่อนเข้ารหัส ต้องใช้
IVขนาด 16 ไบต์ทั้ง ECB และ CBC ต้องการให้ความยาวของอินพุตเป็นทวีคูณของขนาดบล็อก AES 16 ไบต์
IV-- เวกเตอร์เริ่มต้นขนาด 16 ไบต์สำหรับโหมด CBC ไม่ใช้งานใน ECB
- encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
เข้ารหัส
in_bufความยาวของบัฟเฟอร์ต้องเป็นทวีคูณของ 16 ไบต์; ให้เติม padding ในข้อความต้นฉบับก่อนเรียกใช้งานถ้าละเว้น
out_bufผลลัพธ์จะถูกคืนเป็นออบเจกต์bytesที่จัดสรรใหม่ มิฉะนั้น ข้อความรหัสจะถูกเขียนลงใน buffer ที่แก้ไขได้out_bufซึ่งต้องมีขนาดอย่างน้อยเท่ากับin_bufin_bufและout_bufอาจอ้างถึง buffer เดียวกันสำหรับการเข้ารหัสในพื้นที่
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
เหมือนกับ
encrypt()แต่ดำเนินการย้อนกลับ