📄 encrypt_example.uc
字号:
#include "stdmac.uc"
#include "crypto.uc"
.sig sig_crypto_write_ram // used to signal when write to crypto ram is done
.sig sig_crypto_load_key // used to signal when key is loaded
.sig sig_crypto_load_iv // used to signal when iv is loaded
.sig sig_crypto_cipher // used to signal when cipher is done
// Only context 0 executes code.
//
br!=ctx[0, end_of_example#]
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
ctx0_start#:
.begin
.reg $$IV0 $$IV1
.xfer_order $$IV0 $$IV1
.reg $$Key0 $$Key1 $$Key2 $$Key3 $$Key4 $$Key5
.xfer_order $$Key0 $$Key1 $$Key2 $$Key3 $$Key4 $$Key5
.reg $$Data0 $$Data1
.xfer_order $$Data0 $$Data1
.reg rbuf_address
immed32($$IV0, 0x0) // initialize IV
immed32($$IV1, 0x0)
immed32($$Key0, 0x0) // initialize key
immed32($$Key1, 0x0)
immed32($$Key2, 0x0)
immed32($$Key3, 0x0)
immed32($$Key4, 0x0)
immed32($$Key5, 0x0)
immed32(rbuf_address, 0) // initialize rbuf address
crypto_write_ram( rbuf_address, // in_src_data
0x10, // in_ram_addr
1, // in_ref_count
CRYPTO_UNIT_0, // in_crUnit
sig_crypto_write_ram) // in_signal
crypto_load_key( $$Key0, // in_src_data
3, // in_ref_count
CRYPTO_UNIT_0, // in_crUnit
CRYPTO_BANK_0, // in_bank
CRYPTO_STATE_0, // in_state
sig_crypto_load_key) // in_signal
crypto_load_iv( $$IV0, // in_src_data
1, // in_ref_count
CRYPTO_UNIT_0, // in_crUnit
CRYPTO_BANK_0, // in_bank
CRYPTO_STATE_0, // in_state
sig_crypto_load_iv) // in_signal
ctx_arb[sig_crypto_write_ram, sig_crypto_load_key, sig_crypto_load_iv]
crypto_cipher( $$Data0, // out_dest_data
0x10, // in_ram_addr
1, // in_ref_count
CRYPTO_CIPHER_ENCRYPT, // in_mode
CRYPTO_CIPHER_NO_CBC, // in_cbc
CRYPTO_CIPHER_3DES, // in_algorithm
CRYPTO_UNIT_0, // in_crUnit
CRYPTO_BANK_0, // in_bank
CRYPTO_STATE_0, // in_state
sig_crypto_cipher) // in_signal
ctx_arb[sig_crypto_cipher]
.end
end_of_example#:
ctx_arb[kill]
nop
nop
nop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -