之前有同事问到如何将一个公钥,转换成与之对应的.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中将公钥转换成字符数组头文件的实现相关推荐

  1. HDOJ---1431 素数回文[素数筛选+ltoa函数(将长整形转换成字符数组)+打表]

    素数回文 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  2. asp.net(c#)字符串转换成字符数组 字符串转换成int 数组

    问题: 一个字符串是string   a="a,b,c,d" ,另一个是string   b="1,2,3,4" ,第一个转换成string[]类型的,第二个转 ...

  3. java怎么把字符串转换成字符数组

    此博客用于个人编程学习记录. 文章内容来自于: java怎么把字符串转换成字符数组-Java基础-PHP中文网https://www.php.cn/java/base/435415.html java ...

  4. 字符串转换成字符数组的一些方法

    内容基本源自某公众号,在其基础上进行了部分补充 字符串转为字符数组的一些方法 1. split() 2. 扩展运算符 3. 字符串的解构赋值 4. Array.from 1. split() spli ...

  5. Java字符串转换成字符数组

    方法1 package com.oracle;import java.util.Scanner;public class Test {/*** @param args*/public static v ...

  6. oracle字符串转换浮点数,c#中将字符串转换成带2位小数的浮点数

    今天遇到一个展示酒店价格的需求,觉得是要显示成"¥0.00"样式的,就做个小随笔,将字符串装换成带2位小数的浮点数 代码如下 string aaa = ""; ...

  7. 在WPF中将图片转换成3D图像并可以旋转

    原文:在WPF中将图片转换成3D图像并可以旋转 时光偷走的,永远都是我们眼皮底下看不见的珍贵. https://pan.baidu.com/s/14dk-OU2SR0nxXj2bL4bVpQ 首先先看 ...

  8. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为八进制字符串(char [])...

    c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into octal string (char[]) in ...

  9. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...

    c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into Hexadecimal string (char ...

最新文章

  1. 中国电信打造“三朵云”战略 助力互联网+医疗发展
  2. MyBatis 一个简单配置搞定数据加密解密!
  3. bat、sh等批处理文件(脚本文件)
  4. 独立测试团队在敏捷开发中的几个特别实践
  5. 【Android】Android 8种对话框(Dialog)
  6. php基本函数对象,PHP常用函数对象_PHP教程
  7. Linux编程考前测试题
  8. Oracle数据库配置方案,oracle数据库各项参数参考配置方案
  9. android已停止三星,急,android离线打包程序三星下总报 程序 已停止
  10. oracle java 面试题及答案_Oracle面试题及答案
  11. 你会装系统吗?(安装macOS系统-使用OpenCore引导吃上黑苹果)
  12. 使用Flash绘制曲线动画
  13. 三菱PLC c语言梯形图,三菱plc梯形图实例详解
  14. ico图标生成器系统 断网情况下快速生成ico文件
  15. 408最后20天冲刺阶段应该注意的问题
  16. conventional path export与direct path export
  17. ThreadPoolExecutor(二)——execute
  18. 为什么用了这么多社交软件,你还是要回家相亲
  19. 【报告分享】2020快手母婴生态报告-快手大数据研究院(附下载)
  20. SQL1054错误Unknown column .... in on clause

热门文章

  1. 年度总结 是不公平和智障的产物
  2. 一个程序员转产品经理的经验分享
  3. C\C++不经意间留下的知识空白------宏
  4. 机器学习 | 梯度下降原理及Python实现
  5. pandas学习笔记五之pandas合并
  6. Mac系统打开dmg文件出现“资源忙”的解决方法
  7. 字符串匹配算法_4月16日活动预告|字符串匹配算法解析
  8. 啊哈C语言,c语言编程入门书籍及PPT(PDF版)下载网址
  9. 1.7 编程基础之字符串 27 单词翻转 4分 python
  10. STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波