nl::Weave::Platform::Security

מרחב השמות הזה כולל את כל הממשקים ב-Weave עבור מנהל הזיכרון של צג האבטחה של Weave.

סיכום

הפונקציות במרחב השמות הזה יוטמעו על ידי פלטפורמות שמשתמשות ב-Weave, בהתאם לצרכים/למגבלות של הסביבה הספציפית.

ספירות

BlockSetParamFields{
  kBlockSetSizeMask = 0x07,
  kBlockSetSizeShift = 0,
  kBlockSetSizeValueShift = 7,
  kBlockSetCountMask = 0x18,
  kBlockSetCountShift = 3,
  kBlockSetBufferIndexMask = 0x60,
  kBlockSetBufferIndexShift = 5,
  kBlockSetIsLongTermMask = 0x80,
  kBlockSetIsLongTermShift = 7
}
טיפוסים בני מנייה (enum)
חסימת המיקום של שדות הפרמטרים של קבוצת הנתונים בפורמט מקודד של 8 ביט.
BlockSetParams{
  kNumberOfNetworkBuffers = 2,
  kNumberOfBlockSets = 4,
  kNetworkBuffer0BlockAllocationMask = 0x07,
  kNetworkBuffer1BlockAllocationMask = 0x18,
  kBlockSet1Size = 1,
  kBlockSet1Count = 1,
  kBlockSet1BufferIndex = 0,
  kBlockSet1isLongTerm = 1,
  kBlockSet2Size = 4,
  kBlockSet2Count = 1,
  kBlockSet2BufferIndex = 0,
  kBlockSet2isLongTerm = 1,
  kBlockSet3Size = 4,
  kBlockSet3Count = 1,
  kBlockSet3BufferIndex = 0,
  kBlockSet3isLongTerm = 0,
  kBlockSet4Size = 5,
  kBlockSet4Count = 2,
  kBlockSet4BufferIndex = 1,
  kBlockSet4isLongTerm = 0,
  kTotalMemorySize = (kBlockSet1Size * kBlockSet1Count + kBlockSet2Size * kBlockSet2Count + kBlockSet3Size * kBlockSet3Count + kBlockSet4Size * kBlockSet4Count) << kBlockSetSizeValueShift,
  kMaxBlockSize = 600,
  kMinBufferSize = 1240
}
טיפוסים בני מנייה (enum)
הגדרת פרמטרים של קבוצת בלוקים.

ערכי דף

BlockMark_t typedef
uint8_t
הסוג המשמש לסימון הבלוק שמוקצה/לא מוקצה כעת.
BlockSetParams_t typedef
uint8_t
הסוג הזה משמש לקידוד פרטים של קבוצות בלוקים.

משתנים

sBlockSetParams = { ((kBlockSet1Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet1Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet1BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet1isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet2Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet2Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet2BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet2isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet3Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet3Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet3BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet3isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet4Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet4Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet4BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet4isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), }[kNumberOfBlockSets]
בלוקים מקודדים מגדירים פרמטרים.
sBufferAllocationMask = { kNetworkBuffer0BlockAllocationMask, kNetworkBuffer1BlockAllocationMask, }[kNumberOfNetworkBuffers]
const BlockMark_t
קבוצת מסכות של בלוקים של אחסון נתונים.
sMemBlocksAllocated = 0
מציין איזה בלוק מוקצה/לא מוקצה.
sMemBufs = { NULL }[kNumberOfNetworkBuffers]
void *
המצביעים אל מאגרי זיכרון מאותחלים ל-NULL.
sNetworkBuffersUsed = true
bool
ערך בוליאני שמציין אם (true) או לא (false) את השימוש במאגרי הנתונים הזמניים של רשת ה-{8/}

פונקציות

DecodeBlockSetParams(BlockSetParams_t blockSetParams, uint16_t & blockSize, uint8_t & blockCount, uint8_t & blockBufferIndex, bool & blockIsLongTerm)
void
GetSecureRandomData(uint8_t *buf, uint16_t len)
שכבת Weave מפעילה את הפונקציה הזו כדי ליצור נתונים אקראיים.
InitSecureRandomDataSource(nl::Weave::Crypto::EntropyFunct entropyFunct, uint16_t entropyLen, const uint8_t *personalizationData, uint16_t perDataLen)
שכבת Weave מפעילה את הפונקציה הזו כדי לאתחל מקור נתונים אקראי.
MemoryAlloc(size_t size)
void *
הפונקציה הזו נקראת על ידי שכבת Weave כדי להקצות גוש זיכרון של בייטים מסוג "גודל".
MemoryAlloc(size_t size, bool isLongTermAlloc)
void *
הפונקציה הזו נקראת על ידי שכבת Weave כדי להקצות גוש זיכרון של בייטים מסוג "גודל".
MemoryFree(void *p)
void
שכבת ה-Weave קוראת לפונקציה הזו כדי לשחרר בלוק זיכרון שהוקצה על ידי הפונקציה MemeoryAlloc() .
MemoryInit(void *buf, size_t bufSize)
הפונקציה הזו נקראת על ידי שכבת Weave כדי לאתחל את הזיכרון ואת המשאבים הנדרשים לפונקציונליות התקינה של מקצה הזיכרון של מנהל האבטחה ב-Weave.
MemoryShutdown(void)
void
הפונקציה הזו נקראת על ידי שכבת Weave כדי לשחרר את כל המשאבים שהוקצו על ידי הפונקציה MemoryInit().
OnTimeConsumingCryptoDone(void)
void
הפונקציה הזו נקראת כדי ליידע את האפליקציה כשפעולה קריפטוגרפית שצורכת זמן רב הסתיימה.
OnTimeConsumingCryptoStart(void)
void
הפונקציה הזו נקראת כדי ליידע את האפליקציה כשפעולה קריפטוגרפית שצורכת זמן עומדת להתחיל.

מחלקות

nl::Weave::Platform::Security::AES128BlockCipher
nl::Weave::Platform::Security::AES128BlockCipherDec
nl::Weave::Platform::Security::AES128BlockCipherEnc
nl::Weave::Platform::Security::AES256BlockCipher
nl::Weave::Platform::Security::AES256BlockCipherDec
nl::Weave::Platform::Security::AES256BlockCipherEnc
nl::Weave::Platform::Security::SHA1
nl::Weave::Platform::Security::SHA256

ספירות

BlockSetParamFields

 BlockSetParamFields

חסימת המיקום של שדות הפרמטרים של קבוצת הנתונים בפורמט מקודד של 8 ביט.

תכונות
kBlockSetBufferIndexMask

אנונימיזציה של שדות אינדקס מאגר הנתונים הזמני.

kBlockSetBufferIndexShift

שינוי השדה של אינדקס מאגר נתונים זמני.

kBlockSetCountMask

ספירה של אנונימיזציה של שדות.

kBlockSetCountShift

ספירה של שינויים בשדה.

kBlockSetIsLongTermMask

יש להקליד אנונימיזציה של שדות.

kBlockSetIsLongTermShift

הקלדה של הזזת שדה.

kBlockSetSizeMask

אנונימיזציה של שדות גודל.

kBlockSetSizeShift

שינוי גודל בשדה.

kBlockSetSizeValueShift

שינוי בפענוח השדה בגודל (הכפלה ב-128).

BlockSetParams

 BlockSetParams

הגדרת פרמטרים של קבוצת בלוקים.

תכונות
kBlockSet1BufferIndex

הערך של אינדקס מאגר הנתונים הזמני מוגדר 0.

kBlockSet1Count

מספר הבלוקים בסט 1 הוא 1.

kBlockSet1Size

הגודל שהוגדר ב-# 1 הוא 128 בייטים.

kBlockSet1isLongTerm

הסוג הראשון הוא טווח ארוך.

kBlockSet2BufferIndex

הערך של אינדקס מאגר הנתונים הזמני מוגדר 2 הוא 0.

kBlockSet2Count

מספר הבלוקים בסט 2 הוא 1.

kBlockSet2Size

גודל #2 הוא 512 בייטים.

kBlockSet2isLongTerm

הסוג 2 הוא לטווח ארוך.

kBlockSet3BufferIndex

אינדקס מאגר הנתונים הזמני שנקבע מס' 3 הוא 0.

kBlockSet3Count

מספר הבלוקים של קבוצה 3 הוא 1.

kBlockSet3Size

הגודל של קבוצה 3 הוא 512 בייטים.

kBlockSet3isLongTerm

הסוג 3 הוא לטווח קצר.

kBlockSet4BufferIndex

קבוצה 4 של אינדקס מאגר הנתונים הזמני היא 1.

kBlockSet4Count

קבוצה 4 של מספר הבלוקים היא 2.

kBlockSet4Size

גודל מס' 4 הוא 640 בייט.

kBlockSet4isLongTerm

הסוג של קבוצה 4 הוא לטווח קצר.

kMaxBlockSize

גודל הבלוקים המקסימלי הנתמך על ידי Simple Allcator.

kMinBufferSize

הגודל המינימלי של מאגר הנתונים הזמני ברשת כדי לתמוך בתרחישים לדוגמה פשוטים ב-BigQuery.

הפרמטר הזה נגזר מהגדלים של שני בלוקים של זיכרון (640 + 600) שהוקצו למאגר הנתונים הזמני של הרשת מס' 1.

kNetworkBuffer0BlockAllocationMask

המסיכה הזו מזהה את כל גושי הזיכרון שהוקצו ממאגר נתונים זמני של רשת מס' 0.

kNetworkBuffer1BlockAllocationMask

המסיכה הזו מזהה את כל גושי הזיכרון שהוקצו ממאגר אחסון זמני של רשת מס' 1.

kNumberOfBlockSets

מספר ערכות הבלוקים שבהן משתמש ה-Simple BigQuerycator.

kNumberOfNetworkBuffers

מספר מאגרי הנתונים הזמניים של רשת המשמשים את BigQuerycator

kTotalMemorySize

הזיכרון הכולל שבו משתמש ה-PM בצורה פשוטה.

ערכי דף

BlockMark_t

uint8_t BlockMark_t

הסוג המשמש לסימון הבלוק שמוקצה/לא מוקצה כעת.

uint8_t – תמיכה ב-8 בלוקי זיכרון לכל היותר uint16_t – תמיכה ב-16 בלוקי זיכרון לכל היותר uint32_t – תמיכה ב-32 בלוקי זיכרון לכל היותר

BlockSetParams_t

uint8_t BlockSetParams_t

הסוג הזה משמש לקידוד פרטים של קבוצות בלוקים.

קבוצת בלוקים היא קבוצה של מקטעי זיכרון בעלי מאפיינים זהים (גודל, סוג ושייכים לאותו מאגר). בתרשים הבא אפשר לראות איך מקודדים נתונים של קבוצות בלוקים בפורמט 8 סיביות:

ארוך טווח חסימת האינדקס מספר הבלוקים גודל הבלוק
[7] [6:5] [4:3] [2:0]
[2:0] - גודל גוש הזיכרון בקבוצה. ערך הגודל מקודד ברמת פירוט של 128 בייטים.
[2:0] פענוח הקוד
000 0 בייט
001 128 בייטים
010 256 בייטים
... -
111 896 בייטים
[4:3] - מספר הבלוקים בקבוצה.
[4:3] פענוח הקוד
00 4 בלוקים
01 בלוק אחד
10 2 בלוקים
11 3 בלוקים
[6:5] - אינדקס מאגר נתונים זמני ברשת שבו נמצאים בלוקי זיכרון. חשוב לשים לב שכאשר משתמשים במאגר נתונים זמני ייעודי, כל בלוקי הזיכרון מוקצים ממאגר אחסון ייעודי, והמערכת מתעלמת מהפרמטר הזה של האינדקס.
[6:5] פענוח הקוד
00 מאגר נתונים זמני ברשת מס' 0
... -
11 מאגר נתונים זמני לרשת מס' 3
[7] - מציין אם בלוקים הם לאחסון לטווח ארוך/קצר.
[7] פענוח הקוד
0 בלוקי זיכרון לטווח קצר
1 בלוקי זיכרון לטווח ארוך

משתנים

sBlockSetParams

const BlockSetParams_t sBlockSetParams[kNumberOfBlockSets] = {
    
    ((kBlockSet1Size << kBlockSetSizeShift) & kBlockSetSizeMask) | 
    ((kBlockSet1Count << kBlockSetCountShift) & kBlockSetCountMask) | 
    ((kBlockSet1BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | 
    ((kBlockSet1isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask),
    
    ((kBlockSet2Size << kBlockSetSizeShift) & kBlockSetSizeMask) | 
    ((kBlockSet2Count << kBlockSetCountShift) & kBlockSetCountMask) | 
    ((kBlockSet2BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | 
    ((kBlockSet2isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask),
    
    ((kBlockSet3Size << kBlockSetSizeShift) & kBlockSetSizeMask) | 
    ((kBlockSet3Count << kBlockSetCountShift) & kBlockSetCountMask) | 
    ((kBlockSet3BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | 
    ((kBlockSet3isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask),
    
    ((kBlockSet4Size << kBlockSetSizeShift) & kBlockSetSizeMask) | 
    ((kBlockSet4Count << kBlockSetCountShift) & kBlockSetCountMask) | 
    ((kBlockSet4BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | 
    ((kBlockSet4isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask),







}

בלוקים מקודדים מגדירים פרמטרים.

sBufferAllocationMask

const BlockMark_t sBufferAllocationMask[kNumberOfNetworkBuffers] = {
                                                   kNetworkBuffer0BlockAllocationMask,
                                                   kNetworkBuffer1BlockAllocationMask,




                                                                                       }

קבוצת מסכות של בלוקים של אחסון נתונים.

מזהה אם כל הבלוקים במאגר הזמני לא מוקצים ולאחר מכן ניתן לשחרר את המאגר.

sMemBlocksAllocated

BlockMark_t sMemBlocksAllocated = 0

מציין איזה בלוק מוקצה/לא מוקצה.

אותחל ל-0, פירושו שכל בלוקי הזיכרון לא מוקצים.

sMemBufs

void * sMemBufs[kNumberOfNetworkBuffers] = { NULL }

המצביעים אל מאגרי זיכרון מאותחלים ל-NULL.

כאשר נעשה שימוש במאגרי אחסון זמניים, sMemBuf[] מצביעים על האובייקטים של PacketBuffer. כשנעשה שימוש במאגר נתונים זמני ייעודי, sMemBufs[0] מפנים למאגר הנתונים הזמני, והמערכת מתעלמת ממצבי sMemBuf[] אחרים.

sNetworkBuffersUsed

bool sNetworkBuffersUsed = true

ערך בוליאני שמציין אם (true) או לא (false) את השימוש במאגרי הנתונים הזמניים של רשת ה-{8/}

אם הערך הוא false – נעשה שימוש במאגר נתונים זמני ייעודי באמצעות הפונקציה MemoryInit().

פונקציות

DecodeBlockSetParams

void DecodeBlockSetParams(
  BlockSetParams_t blockSetParams,
  uint16_t & blockSize,
  uint8_t & blockCount,
  uint8_t & blockBufferIndex,
  bool & blockIsLongTerm
)

GetSecureRandomData

WEAVE_ERROR GetSecureRandomData(
  uint8_t *buf,
  uint16_t len
)

שכבת Weave מפעילה את הפונקציה הזו כדי ליצור נתונים אקראיים.

פרטים
פרמטרים
[in] buf
מצביעים על מאגר נתונים זמני של זיכרון, שבו צריכים לאחסן את הנתונים האקראיים המבוקשים.
[in] len
ההגדרה קובעת את גודל הנתונים האקראיים המבוקשים בבייטים.
ערכים מוחזרים
WEAVE_ERROR_DRBG_ENTROPY_SOURCE_FAILED
אם מקור האנטרופיה לא מצליח ליצור אנטרופיה שהתבקשה על ידי מחולל הנתונים האקראיים.
WEAVE_ERROR_RANDOM_DATA_UNAVAILABLE
אם מקור נתונים אקראי לא מצליח ליצור נתונים אקראיים.
WEAVE_ERROR_INCORRECT_STATE
אם מקור נתונים אקראי נמצא במצב שגוי.
WEAVE_NO_ERROR
בהצלחה.

InitSecureRandomDataSource

WEAVE_ERROR InitSecureRandomDataSource(
  nl::Weave::Crypto::EntropyFunct entropyFunct,
  uint16_t entropyLen,
  const uint8_t *personalizationData,
  uint16_t perDataLen
)

שכבת Weave מפעילה את הפונקציה הזו כדי לאתחל מקור נתונים אקראי.

הפונקציה הזו ספציפית לפלטפורמה והיא עשויה להיות ריקה אם לא נדרש אתחול של מקור נתונים אקראי.

פרטים
פרמטרים
[in] entropyFunct
מצביעים על פונקציה שיוצרת אנטרופיה במחולל הנתונים האקראיים. כשהקלט אנטרופיה לא נדרש על ידי האלגוריתם, הקלט יכול להיות NULL, כלומר במקרה שבו נעשה שימוש בגרסת OpenSSL של מחולל הנתונים האקראיים.
[in] entropyLen
מציינת את גודל האנטרופיה בבייטים שפונקציית האנטרופיה צריכה ליצור כאשר משתמשים בה.
[in] personalizationData
מצביעים על מאגר נתונים זמני בזיכרון שבו נשמר קלט של נתוני התאמה אישית. קלט הנתונים צריך להיות ספציפי למכשיר, ועוזר לשפר את התכונות הסטטיסטיות של הנתונים האקראיים.
[in] perDataLen
ההגדרה קובעת את הגודל של נתוני ההתאמה האישית בבייטים.
ערכים מוחזרים
WEAVE_ERROR_INVALID_ARGUMENT
אם ארגומנט לא חוקי הועבר לפונקציה הזו.
WEAVE_NO_ERROR
בהצלחה.

MemoryAlloc

void * MemoryAlloc(
  size_t size
)

הפונקציה הזו נקראת על ידי שכבת Weave כדי להקצות גוש זיכרון של בייטים מסוג "גודל".

הפונקציה הזו מקבילה ל-MemoryAlloc(size, false).

פרטים
פרמטרים
[in] size
המדיניות קובעת את גודל הזיכרון המבוקש בבייטים.
ערכים מוחזרים
Pointer
לבלוק זיכרון במקרה של הצלחה.
NULL-pointer
אם הקצאת הזיכרון נכשלה.

MemoryAlloc

void * MemoryAlloc(
  size_t size,
  bool isLongTermAlloc
)

הפונקציה הזו נקראת על ידי שכבת Weave כדי להקצות גוש זיכרון של בייטים מסוג "גודל".

פרטים
פרמטרים
[in] size
המדיניות קובעת את גודל הזיכרון המבוקש בבייטים.
[in] isLongTermAlloc
ערך בוליאני שמציין אם (true) או לא (false) את גוש הזיכרון המבוקש לשימוש לטווח ארוך. הקצאה לטווח ארוך היא זיכרון שאמור להישאר מוקצה עד להשלמת הסשן המאובטח/לחיצת היד. דוגמאות להקצאה לטווח ארוך כוללות בלוקים שהוקצו לאובייקטים מסוג CASE/PASE ונתוני ההקשר שלהם. הקצאה לטווח קצר היא זיכרון שנחוץ כדי לבצע פעולה ספציפית, ואפשר לשחרר אותה מיד אחריה. הקלט הזה עוזר לבצע אופטימיזציה של ניצול הזיכרון במערכת מוגבלת בזיכרון. השימוש בפרמטר הזה הוא שרירותי ותלוי בהטמעת הפונקציה. לדוגמה, המערכת מתעלמת מהפרמטר הזה כשנעשה שימוש ב-C Standard Library Malloc() .
ערכים מוחזרים
Pointer
לבלוק זיכרון במקרה של הצלחה.
NULL-pointer
אם הקצאת הזיכרון נכשלה.

MemoryFree

void MemoryFree(
  void *p
)

שכבת ה-Weave קוראת לפונקציה הזו כדי לשחרר בלוק זיכרון שהוקצה על ידי הפונקציה MemeoryAlloc() .

פרטים
פרמטרים
[in] p
מצביעים על בלוק הזיכרון שרוצים לשחרר.

MemoryInit

WEAVE_ERROR MemoryInit(
  void *buf,
  size_t bufSize
)

הפונקציה הזו נקראת על ידי שכבת Weave כדי לאתחל את הזיכרון ואת המשאבים הנדרשים לפונקציונליות התקינה של מקצה הזיכרון של מנהל האבטחה ב-Weave.

הפונקציה הזו ספציפית לפלטפורמה ויכולה להיות ריקה במקרים מסוימים. לדוגמה, הפונקציה הזו לא מבצעת שום פעולה כאשר נעשה שימוש בפונקציות C Standard Library Malloc() ו-free() להקצאת זיכרון.

פרטים
פרמטרים
[in] buf
מצביע למאגר אחסון ייעודי לזיכרון, שצריך להשתמש בו כמאגר זיכרון להקצאת הזיכרון של מנהל האבטחה ב-Weave. הקלט הזה הוא אופציונלי (ברירת המחדל היא NULL) ולא ניתן להשתמש בו אם לא נעשה שימוש במאגר נתונים זמני של זיכרון.
[in] bufSize
הגודל של מאגר נתונים זמני ייעודי. הקלט הזה הוא אופציונלי (ברירת המחדל היא 0) ולא ניתן להשתמש בו אם לא משתמשים במאגר נתונים זמני ייעודי. כשמשתמשים במאגר נתונים זמני ייעודי, הפונקציה בודקת ויוצרת שגיאה אם גודל מאגר הנתונים הזמני לא גדול מספיק כדי לתמוך בתרחישים לדוגמה של מנהל האבטחה של Weave.
ערכים מוחזרים
WEAVE_ERROR_BUFFER_TOO_SMALL
אם גודל מאגר הקלט הייעודי לא מספיק כדי לתמוך בתרחישים לדוגמה של מנהל האבטחה ב-Weave.
WEAVE_NO_ERROR
בהצלחה.
other
שגיאה שנוצרה על ידי פונקציית אתחול זיכרון ספציפית לפלטפורמה.

MemoryShutdown

void MemoryShutdown(
  void
)

הפונקציה הזו נקראת על ידי שכבת Weave כדי לשחרר את כל המשאבים שהוקצו על ידי הפונקציה MemoryInit().

הפונקציה הזו יכולה להיות קריאה ריקה אם אין צורך לשחרר משאבים. לדוגמה, זה מקרה שבו נעשה שימוש בפונקציות C Standard Library Malloc() ו-free() להקצאת זיכרון.

OnTimeConsumingCryptoDone

void OnTimeConsumingCryptoDone(
  void
)

הפונקציה הזו נקראת כדי ליידע את האפליקציה כשפעולה קריפטוגרפית שצורכת זמן רב הסתיימה.

OnTimeConsumingCryptoStart

void OnTimeConsumingCryptoStart(
  void
)

הפונקציה הזו נקראת כדי ליידע את האפליקציה כשפעולה קריפטוגרפית שצורכת זמן עומדת להתחיל.