标签:use fse aes conf 就是 sign write end reset
目录
OTFAD(On the fly decryption)是针对QSPI flash的一个解密模块。板子上电后,OTFAD自动解密。
OTFAD的加密使用SB命令完成,SB的操作请参见博客RT600之SB。
OTFAD支持PUF跟OTP key两套解密操作。
加密过程:
OTFAD kek ==>加密得到加密的image,key==>对OTFAD kek加密得到加密的OTFAD kek,加密的OTFAD kek存储到固定位置
解密过程:
key ==> 解密OTFAD kek ==> 解密image
key使用PUF或者OTP key管理。
options {
}
sources {
myQspiConfile = "Image/unsigned_0xc000.bin"; #需要加密的image,使用LED demo
key_store = "Key_store/key_store_otfad.bin"; #如果使用PUF管理key,此处需要填入SB/OTFAD key对应的key store
}
keyblob(0){
(
start = 0x08001000, #加密起始地址
end = 0x080013ff, #加密结束地址
key = "000102030405060708090A0B0C0D0E0F",
counter = "0123456789ABCDEF"
)
}
keyblob(1){
(
start = 0x08001400,
end = 0x080033ff,
key = "000102030405060708090A0B0C0D0E0F",
counter = "0123456789ABCDEF"
)
}
keyblob(2){
(
start = 0x08005000,
end = 0x080063ff,
key = "000102030405060708090A0B0C0D0E0F",
counter = "0123456789ABCDEF"
)
}
keyblob(3){
(
start = 0x08007000,
end = 0x080083ff,
key = "000102030405060708090A0B0C0D0E0F",
counter = "0123456789ABCDEF"
)
}
section (0) {
load 0xc0000003 > 0xC000;
enable qspi 0xC000; #enable QSPI flash
erase 0x8000000..0x8010000; #擦除QSPI flash
load 0xf000000f > 0xd000;
enable qspi 0xd000; #写入FCB
load key_store > 0x08000800; #写入key store,使用master key的话不需要写入key store
encrypt(0){
load myQspiConfile > 0x08001000; #写入image,由于写入的区域是加密的,image会使用key blob0加密后存储到flash中
}
keywrap (0) {
load {{0102030405060708090a0b0c0d0e0f00}} > 0x08000000; #使用key对key blob 0加密后写入QSPI offset 0x0
}
keywrap (1) {
load {{0102030405060708090a0b0c0d0e0f00}} > 0x08000040;
}
keywrap (2) {
load {{0102030405060708090a0b0c0d0e0f00}} > 0x08000080;
}
keywrap (3) {
load {{0102030405060708090a0b0c0d0e0f00}} > 0x080000C0;
}
}
标签:use fse aes conf 就是 sign write end reset
原文地址:https://www.cnblogs.com/richard-xiong/p/9924649.html