PEM格式RSA 秘钥转bin格式

本文详细介绍了如何将使用PEM格式存储的RSA密钥转换为二进制(BIN)格式,这对于在不同系统间交换或存储密钥时非常有用。通过解析PEM文件并将其内容转换为二进制,你可以轻松完成这一操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公钥
    PUBKey.bits = 1024;
    for(int tmp=0;tmp<128;tmp++)
    {
        PUBKey.modulus[tmp]=decode[29+tmp];
    }

    PUBKey.exponent[127]=decode[159];

     FILE *tmpFp=fopen("R_pub.key","wb");
     fwrite(&PUBKey,1,sizeof(PUBKey),tmpFp);
     fclose(tmpFp);

私钥
PrivateKey.bits = 1024;
    for(int tmp = 0;tmp <128;tmp++)
    {
        PrivateKey.modulus[tmp]=decode[11+tmp];
    }

    PrivateKey.publicExponent[128-1]=decode[141];

    for(int tmp=0;tmp<128;tmp++)
    {
        PrivateKey.exponent[tmp] = decode[145+tmp];
    }

    for(int tmp=0;tmp<64;tmp++)
    {
        PrivateKey.prime[0][tmp] = decode[276+tmp];
    }

    for(int tmp=0;tmp<64;tmp++)
    {
        PrivateKey.prime[1][tmp] = decode[343+tmp];
    }

    for(int tmp=0;tmp<64;tmp++)
    {
        PrivateKey.primeExponent[0][tmp] = decode[410+tmp];
    }

    for(int tmp=0;tmp<64;tmp++)
    {
        PrivateKey.primeExponent[1][tmp] = decode[477+tmp];
    }
    for(int tmp=0;tmp<64;tmp++)
    {
        PrivateKey.coefficient[tmp]=decode[543+tmp];
    }
### 更换 Android Verified Boot (AVB) 密钥的流程 更换 AVB 密钥是一个涉及多个步骤的过程,主要目的是更新设备上的验证密钥以确保安全性。以下是关于如何完成这一过程的关键点: #### 1. 准备新的私有/公钥对 为了替换现有的 AVB 密钥,首先需要生成一个新的私有/公钥对。这可以通过 OpenSSL 或其他工具实现。 ```bash openssl genpkey -algorithm RSA -out new_avb_private_key.pem -aes256 -pkeyopt rsa_keygen_bits:4096 ``` 上述命令会生成一个带有密码保护的新私钥文件 `new_avb_private_key.pem`[^1]。 接着,提取对应的公钥部分以便后续使用: ```bash avbtool extract_public_key --key new_avb_private_key.pem --output new_avb_public_key.bin ``` 此命令将新生成的公钥保存为二进制格式文件 `new_avb_public_key.bin`。 #### 2. 更新引导加载程序中的公钥 要使设备能够识别并接受新的 AVB 公钥,在设备的引导加载程序中必须包含这个新的公钥。具体方法取决于硬件厂商的设计方式。如果支持动态更新,则可通过以下方式进行配置: - 如果设备允许通过元数据 blob 的形式嵌入新的公钥,可利用 `--public_key_metadata` 参数创建相应的 metadata 文件,并将其集成到 vbmeta 映像中[^3]。 ```bash avbtool add_hash_footer --image boot.img --partition_name boot \ --key new_avb_private_key.pem --public_key_metadata new_avb_pkmd.blob ``` 此处假设已提前准备好名为 `new_avb_pkmd.blob` 的公钥元数据文件。 #### 3. 修改内核配置以启用 AVB 支持 对于某些平台而言,可能还需要调整内核编译选项来激活或适配最新的 AVB 功能需求。例如,在联发科芯片组上可能会涉及到如下设置项: ```makefile CONFIG_MTK_AVB20_SUPPORT=y ``` 确认这些参数已被正确开启有助于保障整个升级过程中不会因缺乏必要功能而失败[^4]。 #### 4. 构建新的 VBMeta 图像并与旧版兼容处理 构建全新的 vbmeta image 并考虑向后兼容性非常重要。可以借助于 chain partition 技术链接先前版本所依赖的老式 keysets 到当前体系结构下继续发挥作用。 ```bash avbtool make_vbmeta_image --include_descriptors_from_image old_boot.img \ --chain_partition system:new_system_guid:new_avb_private_key.pem \ --output updated_vbmeta.img ``` 这条指令不仅包含了来自既有系统的描述符信息,同时也定义了一个针对未来系统分区采用最新签名方案的关系链条。 #### 5. 测试与部署更改后的映像至目标装置 最后一步就是把重新制作好的所有组件传输回实际运行环境当中去测试其有效性以及稳定性表现情况。务必小心谨慎执行刷机动作以免造成不可逆损害! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值