SHA 模塊的標(biāo)準(zhǔn)設(shè)置分成四個部分:
- SHA 狀態(tài)監(jiān)控的設(shè)置
-
可以通過兩種方法(觸發(fā)的中斷及寄存器輪詢)將 SHA 狀態(tài)變化通知 CPU。如果使用 SHA 中斷來監(jiān)測狀態(tài)變化,則需要在使用 SHA 模塊之前配置并啟用這些中斷。
- 設(shè)置 SHA 數(shù)據(jù)長度
- 在使用 SHA 模塊之前,需要配置 SHA 數(shù)據(jù)長度
- 必須在 SHA 模式包括的情況下以字節(jié)為單位指定數(shù)據(jù)長度
- 然后可以通知 SHA 模塊,模式和數(shù)據(jù)長度可用
- MAC 密鑰設(shè)置(僅適用于 HMAC 模式)
- 如果使用 SHA HMAC 模式,在使用 SHA 模塊之前,必須為模塊提供用于加密的 MAC 密鑰
- 必須以字的形式將 MAC 密鑰寫入 SHA 模塊,其中包括密鑰總大小
- 然后,必須通知 SHA 模塊,該密鑰可用
- 必須通知 SHA 模塊,可以開始處理密鑰
- 最后,CPU 必須等到 SHA 模塊完成處理
- 直接存儲器存取 (DMA) 的設(shè)置
-
SHA 模塊基于數(shù)據(jù)塊運(yùn)行,并且必須手動饋送數(shù)據(jù)才能使模塊進(jìn)行摘要。為了執(zhí)行這一操作,可以通過 CPU 或 DMA 傳輸來饋送數(shù)據(jù)。如果使用 DMA 傳輸,則必須在使用 SHA 模塊之前設(shè)置 DMA 通道。
- DMA 源地址必須指向要哈希處理的消息的開頭
- DMA 目標(biāo)地址必須指向 SHAW_DATA_FIXED 寄存器
- DMA 消息長度必須設(shè)置成以字為單位的消息長度
- DMA 源和目標(biāo)寬度必須為一個字的大小
- DMA 源必須配置為單遞增模式,目標(biāo)不得更改
- 必須將 DMA 觸發(fā)器設(shè)置為 SHAW_TRIGGER
- 最后,可啟用 DMA 通道