⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encrypt_example.uc

📁 网络处理器例子程序2
💻 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 + -