תרגול זהות והצפנת תעבורה¶
תרגיל ראשון - מידע נוסף¶
ממשו את לולאת התעבורה סביב tls_handshake. היא צריכה לשלוח את כל הoutput, לשמור קלט שלא נצרך ולהחזיר את הbytes הנוספים כשהhandshake מגיע לready. הגדירו מגבלת קלט של 256 קילובייט ומגבלת צעדים שתמנע לולאה בלי התקדמות.
בדקו את לוגיקת הbuffer באמצעות תוצאות צעדים מוזרקות: מידע חסר, צריכה חלקית, output ללא צריכת קלט והצלחה עם מידע נוסף. אין צורך לפרש בעצמכם TLS record כדי לבדוק את bookkeeping.
תרגיל שני - מטריצת תעודות¶
בשרת TLS של המעבדה בדקו תעודה תקינה לשם הנכון, תעודה לשם אחר, תעודה שפג תוקפה ושרשרת שאינה מהימנה למכונת הלקוח. ציינו את מדיניות הrevocation שנבחרה. אל תבטלו אימות כדי להשלים את הניסוי.
הבדיקה צריכה להוכיח שמידע יישומי לא נשלח לפני הצלחת אימות. תעדו כשל handshake בנפרד מכשל connect, ואל תקבעו שקוד שגיאה אחד מכסה את כל סיבות הכשל.
תרגיל שלישי - buffers להצפנה¶
כתבו פונקציה שמקבלת context מוכן וטקסט קצר, שואלת stream sizes, מצפינה ומחזירה bytes בבעלותה. דחו קלט גדול מcbMaximumMessage והקפידו לא להחזיר span לתוך vector מקומי.
הסבירו מתי מותר לשחרר את התוצאה אם היא נשלחה באמצעות I/O אסינכרוני. הוסיפו תכנון למסלול פענוח שבו plaintext וextra חולקים את אותו אחסון, וסמנו את הנקודה שבה מותר להזיז bytes.