AVB中将公钥转换成字符数组头文件的实现
之前有同事问到如何将一个公钥,转换成与之对应的.h头文件,然后头文件中是公钥的字符数组。
实现其实也比较简单,主要有如下几个步骤,跟着我的步骤就可以实现:
1、先生成一个私钥
这部分就自己openssl自己生成一个就可以了。
2、抽出私钥对应的public key
直接调用android提供的avbtool.py脚本就可以实现
./avbtool.py extract_public_key --key yourprivate.key --output mypublickey.bin
3、生成.h头文件
./bin2header.py -i mypublickey.bin -o myheader.h -v headercontent
参数就三个
-i表示传入的bin文件
-o表示output,生成的.h头文件
-v表示生成的.h中的字符数组的名称
4、生成的myheader.h内容如下
$ cat myheader.h
unsigned char headercontent[] = {0x00, 0x00, 0x10, 0x00, 0x06, 0x35, 0x41, 0x07, 0xbe, 0xe4, 0xff, 0x44,0x58, 0xe8, 0x38, 0xc4, 0xf2, 0x42, 0x5a, 0x9c, 0xcb, 0xd4, 0x53, 0x2d,
...0x2f, 0xfc, 0x7c, 0x00, 0xbd, 0x7f, 0x29, 0xf1, 0xa9, 0x4e, 0xac, 0xe5,0x86, 0xcf, 0x32, 0x47, 0x4c, 0x77, 0xe5, 0xc8, 0xcc, 0x2f, 0xbe, 0xac,0x96, 0x55, 0x51, 0x64, 0x71, 0xb7, 0x71, 0x95, 0xdf, 0xf2, 0x3e, 0x13
};
5、附上bin2header.py脚本
#!/usr/bin/env python
import argparse
import sysdef bin2header(data, var_name='var'):out = []out.append('unsigned char {var_name}[] = {{'.format(var_name=var_name))l = [ data[i:i+12] for i in range(0, len(data), 12) ]for i, x in enumerate(l):line = ', '.join([ '0x{val:02x}'.format(val=ord(c)) for c in x ])out.append(' {line}{end_comma}'.format(line=line, end_comma=',' if i<len(l)-1 else ''))out.append('};')out.append('unsigned int {var_name}_len = {data_len};'.format(var_name=var_name, data_len=len(data)))return '\n'.join(out)def main():parser = argparse.ArgumentParser(description='Generate binary header output')parser.add_argument('-i', '--input', required=True , help='Input file')parser.add_argument('-o', '--out', required=True , help='Output file')parser.add_argument('-v', '--var', required=True , help='Variable name to use in file')args = parser.parse_args()if not args:return 1with open(args.input, 'r') as f:data = f.read()out = bin2header(data, args.var)with open(args.out, 'w') as f:f.write(out)return 0if __name__ == '__main__':sys.exit(main())
好了,以上就是实现的步骤啦,如有不明白的请留言讨论吧。
AVB中将公钥转换成字符数组头文件的实现相关推荐
- HDOJ---1431 素数回文[素数筛选+ltoa函数(将长整形转换成字符数组)+打表]
素数回文 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- asp.net(c#)字符串转换成字符数组 字符串转换成int 数组
问题: 一个字符串是string a="a,b,c,d" ,另一个是string b="1,2,3,4" ,第一个转换成string[]类型的,第二个转 ...
- java怎么把字符串转换成字符数组
此博客用于个人编程学习记录. 文章内容来自于: java怎么把字符串转换成字符数组-Java基础-PHP中文网https://www.php.cn/java/base/435415.html java ...
- 字符串转换成字符数组的一些方法
内容基本源自某公众号,在其基础上进行了部分补充 字符串转为字符数组的一些方法 1. split() 2. 扩展运算符 3. 字符串的解构赋值 4. Array.from 1. split() spli ...
- Java字符串转换成字符数组
方法1 package com.oracle;import java.util.Scanner;public class Test {/*** @param args*/public static v ...
- oracle字符串转换浮点数,c#中将字符串转换成带2位小数的浮点数
今天遇到一个展示酒店价格的需求,觉得是要显示成"¥0.00"样式的,就做个小随笔,将字符串装换成带2位小数的浮点数 代码如下 string aaa = ""; ...
- 在WPF中将图片转换成3D图像并可以旋转
原文:在WPF中将图片转换成3D图像并可以旋转 时光偷走的,永远都是我们眼皮底下看不见的珍贵. https://pan.baidu.com/s/14dk-OU2SR0nxXj2bL4bVpQ 首先先看 ...
- c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为八进制字符串(char [])...
c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into octal string (char[]) in ...
- c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...
c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into Hexadecimal string (char ...
最新文章
- 中国电信打造“三朵云”战略 助力互联网+医疗发展
- MyBatis 一个简单配置搞定数据加密解密!
- bat、sh等批处理文件(脚本文件)
- 独立测试团队在敏捷开发中的几个特别实践
- 【Android】Android 8种对话框(Dialog)
- php基本函数对象,PHP常用函数对象_PHP教程
- Linux编程考前测试题
- Oracle数据库配置方案,oracle数据库各项参数参考配置方案
- android已停止三星,急,android离线打包程序三星下总报 程序 已停止
- oracle java 面试题及答案_Oracle面试题及答案
- 你会装系统吗?(安装macOS系统-使用OpenCore引导吃上黑苹果)
- 使用Flash绘制曲线动画
- 三菱PLC c语言梯形图,三菱plc梯形图实例详解
- ico图标生成器系统 断网情况下快速生成ico文件
- 408最后20天冲刺阶段应该注意的问题
- conventional path export与direct path export
- ThreadPoolExecutor(二)——execute
- 为什么用了这么多社交软件,你还是要回家相亲
- 【报告分享】2020快手母婴生态报告-快手大数据研究院(附下载)
- SQL1054错误Unknown column .... in on clause
热门文章
- 年度总结 是不公平和智障的产物
- 一个程序员转产品经理的经验分享
- C\C++不经意间留下的知识空白------宏
- 机器学习 | 梯度下降原理及Python实现
- pandas学习笔记五之pandas合并
- Mac系统打开dmg文件出现“资源忙”的解决方法
- 字符串匹配算法_4月16日活动预告|字符串匹配算法解析
- 啊哈C语言,c语言编程入门书籍及PPT(PDF版)下载网址
- 1.7 编程基础之字符串 27 单词翻转 4分 python
- STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波