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 אינו נתמך. כל אובייקט התומך בפרוטוקול ה-buffer מתקבל.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(), אך מהפכת את הפעולה.