Advanced Encryption Standard (AES) è uno dei più usati e sicuri algoritmi di crittografia disponibili ad oggi. L’algoritmo è basato su diverse sostituzioni, permutazioni e trasformazioni lineari, ognuno eseguito su blocchi di dati da 16 byte da qui il termine cifrario a blocchi. Ad oggi, non esiste un attacco praticabile contro AES, quindi rimane lo standard di crittografia preferita per governi, banche e sistemi di alta sicurezza in tutto il mondo.
Questo blocco funzione esegue la decrittatura con l’algoritmo AES, è protetto per utilizzarlo occorre richiedere il codice di protezione, vedi protezione funzioni e blocchi funzione. E’ comunque possibile utilizzarlo liberamente in modo test per 15 Min.
Attivando Enable i dati crittati espressi in Base64 presenti nel buffer definito in IData per la lunghezza definita in IDLength sono decrittati utilizzando la chiave definita in CKey. E’ possibile eseguire decrittatura di un intero file in tal caso definire il file in IData e settare IDLength a 0.
I dati decrittati in uscita sono espressi in Ascii e vengono trasferiti nel buffer definito in OData per la dimensione definita in ODSize. E’ possibile memorizzare i dati in un file in tal caso definire il file in OData e settare ODSize a 0. A titolo indicativo per la decrittatura di 1Kb di dati su un sistema CortexM7 occorrono circa 170mS.
Descrizione
Enable (BOOL) Abilitazione decrittatura.
SpyOn (BOOL) Se attivo permette di spiare il funzionamento del FB (Vedi articolo).
CKey (@STRING) Puntatore a CIPHER key, chiave di decrittazione dati.
IData (PVOID) Puntatore ai dati da decrittare (Base64). Se IDLength:=0 viene considerato come definizione a file.
IDLength (UDINT) Lunghezza dati da decrittare. Se 0 viene eseguita decrittazione del file definito in IData.
OData (PVOID) Puntatore a buffer dati decrittati (Ascii). Se ODSize:=0 viene considerato definizione a file.
ODSize (UDINT) Lunghezza buffer dati decrittati. Se 0 i dati vengono trasferiti nel file definito in OData.
Done (BOOL) Attivo a fine esecuzione.
Fault (BOOL) Si attiva per un loop se errore esecuzione.
Decrypted (BOOL) Si attiva se decrittatura eseguita correttamente.
ODLength (UDINT) Ritorna la lunghezza dei dati decrittati.

Spionaggio funzionamento
Se SpyOn attivo è possibile utilizzare utilizzare la console di spionaggio per verificare il funzionamento della FB. Sono previsti vari livelli di triggers.
Trigger di spionaggio
16#00000001 | Kt: Visualizzo key table. |
16#00000002 | St: Visualizzo state table. |
16#00000004 | Dc: Visualizzo passaggi di decrittazione. |
16#10000000 | Lg: Messaggi di log funzionamento. |
16#40000000 | Er: Errori di esecuzione. |