TSEC: Difference between revisions

No edit summary
Line 5,253: Line 5,253:
| 0x18 || [[#sigclr|sigclr]] || N/A || N/A || <code><nowiki>current_sig = NULL;</nowiki></code> || <code><nowiki>has_sig</nowiki></code> || <code><nowiki>has_sig = false;</nowiki></code>
| 0x18 || [[#sigclr|sigclr]] || N/A || N/A || <code><nowiki>current_sig = NULL;</nowiki></code> || <code><nowiki>has_sig</nowiki></code> || <code><nowiki>has_sig = false;</nowiki></code>
|}
|}
==== sigcmp ====
<code>00000000: f5 3c XY d8    csigcmp $cY $cX</code>
Takes 2 crypto registers as operands and is automatically executed when jumping to a code region previously uploaded as secret. This instruction does not work in secure mode.
==== sigclr ====
<code>00000000: f5 3c 00 e0    csigclr</code>
This instruction takes no operands and clears the saved cauth signature used by the csigenc instruction.
==== chmod ====
<code>00000000: f5 3c XY a8    cchmod $cY 0X</code> or <code>00000000: f5 3c XY a9    cchmod $cY 1X</code>
This instruction takes a crypto register and a 5 bit immediate value which represents the [[#ACL|ACL]] mask to set.


==== rnd ====
==== rnd ====
Line 5,281: Line 5,266:


Otherwise it hangs forever.
Otherwise it hangs forever.
==== chmod ====
<code>00000000: f5 3c XY a8    cchmod $cY 0X</code> or <code>00000000: f5 3c XY a9    cchmod $cY 1X</code>
This instruction takes a crypto register and a 5 bit immediate value which represents the [[#ACLs|ACLs]] mask to set.
==== sigcmp ====
<code>00000000: f5 3c XY d8    csigcmp $cY $cX</code>
Takes 2 crypto registers as operands and is automatically executed when jumping to a code region previously uploaded as secret. This instruction does not work in secure mode.
==== sigclr ====
<code>00000000: f5 3c 00 e0    csigclr</code>
This instruction takes no operands and clears the saved cauth signature used by the csigenc instruction.


=== ACLs ===
=== ACLs ===