cryptolib --- شيفرات التعمية¶
توفر الوحدة cryptolib بدائيات شيفرات التعمية المتناظرة. وعلى كاميرات OpenMV Cam تُضمَّن كلما كانت الوحدة ssl مفعّلة.
الأصناف¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
تنشئ كائن شيفرة AES جديداً، مناسباً للتعمية أو فك التعمية. وبعد التهيئة، يمكن استخدام كائن الشيفرة في اتجاه واحد فقط --- فتشغيل
decrypt()بعدencrypt()(أو العكس) غير مدعوم.المعطيات:
key-- مفتاح التعمية/فك التعمية. يجب أن يكون بطول 16 بايت بالضبط (AES-128) أو 32 بايت (AES-256)؛ أما AES-192 فغير مدعوم. يُقبل أي كائن يدعم بروتوكول المخزن المؤقت.mode-- يحدد نمط شيفرة الكتل:القيمة
الاسم
الوصف
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 بايت؛ قم بحشو النص الصريح بنفسك قبل الاستدعاء.إذا حُذف
out_bufتُرجع النتيجة على شكل كائنbytesمخصص حديثاً. وإلا فإن النص المُعمّى يُكتب في المخزن المؤقت القابل للتعديلout_buf، الذي يجب ألا يقل طوله عن طولin_buf. ويمكن أن يشير كل منin_bufوout_bufإلى المخزن المؤقت نفسه للتعمية في المكان.
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
مثل
encrypt()، لكنها تعكس العملية.