qemu
文章平均质量分 51
TuxedoLinux
这个作者很懒,什么都没留下…
展开
-
verilog
assign对f进行连续赋值,无论何时改变右侧信号的状态,f的值都需重新计算。原创 2021-03-15 15:51:12 · 162 阅读 · 0 评论 -
TAG
原创 2021-02-16 19:27:45 · 346 阅读 · 0 评论 -
金融系统中PBOC/EMV的TLV的算法实现(含C++/C#)
金融系统中PBOC/EMV的TLV的算法实现(含C++/C#)TLV即Tag-Length-Value,常在IC卡与POS终端设备中通过这样的一个应用通信协议进行数据交换。在金融系统以及认证中,PBOC以及 EMV的认证规范文档上面也有对TLV做了一些说明,由于认证规范都是英文文档,所以有些人可能不易于理解。首先我先介绍下什么是TLV,TLV的用途是 什么,以及如何实现它的打包解包算法。 金融系统中的TLV是BER-TLV编码的一个特例编码规范,而BER-TLV是ISO定...转载 2021-02-16 19:20:16 · 470 阅读 · 0 评论 -
TLG
银联55域TLV子域信息说明基本信息子域列表 子域中文名称 子域英文名称 子域缩写 子域tag标签值 子域所占长度 (单位:字节) 子域属性 应用密文 Application Cryptogram AC 9F26 8 B 密.原创 2021-02-16 16:56:50 · 1040 阅读 · 0 评论 -
PBOC借记贷记应用终端规范文档,对名词解释
中国金融集成电路(IC)卡规范备注学习PBOC借记贷记应用终端规范文档,对名词解释备注一下。应用 application卡片和终端之间的应用协议和相关的数据集。命令 command终端向IC卡发出的一条报文,该报文启动一个操作或请求一个响应。密文 cryptogram加密运算的结果。金融交易 financial transaction由于持卡者和商户之间的商品或服务交换行为而在持卡者、发卡机构、商户和收单行之间产生的信息交换、资金清算和结算行为。...原创 2021-02-03 10:14:27 · 671 阅读 · 0 评论 -
TLV
https://blog.csdn.net/Enjoy_endless/article/details/78259529?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control原创 2021-01-17 16:23:22 · 315 阅读 · 0 评论 -
PBOC
PBOChttps://blog.csdn.net/u013318715/article/details/21239035最近在做一个基于PBOC电子现金卡的终端应用, 项目还没有完成, 但电子现金部分的处理模块已完成,剩下的基本是UI和调试的事情了. 想把对PBOC电子现金理解整理成一篇文章.电子现金的概念是在PBOC规范的第十三部分<<基于借记/贷记应用的小额支付规范 >>里提出的。可以这样理解,电子现金是PBOC里的一个应用,它基于借贷记. 这个应...转载 2021-01-15 15:56:00 · 1287 阅读 · 0 评论 -
2021-01-14
首先, MF, DF和EF这三个其实是iso7816里的概念. 是7816里规定的卡的文件结构. 这种文件结构是一种树形的结构. MF 可以理解为根目录,DF是目录,EF当成是目录里的文件. 所以MF其是也是一种DF,只不过是最上层的DF.而ADF,DDF和AEF是PBOC/EMV里的概念. PBOC/EMV里定义的IC卡文件结构是符合ISO7816标准的. ADF和DDF其实是DF的两种映射,而AEF是EF的映射. 程序访问时,访问的是ADF,DDF和AEF, 而不是DF和EF. 这种机制非常.原创 2021-01-15 14:19:30 · 303 阅读 · 0 评论 -
图说智能卡规范
图说智能卡规范PBOC应用UPCARD应用秘钥信息文件存储内容(8个秘钥最多):PIN:验证持卡人的一个秘钥PUK:用于解锁PIN的秘钥PIN加密秘钥:对报文中用户输入PIN的加密秘钥报文加密秘钥:对报文进行加密的秘钥报文MAC秘钥:对报文进行计算MAC的秘钥持卡人认证信息(EF01):包含但不限于-姓名(20)、证件类型(1)、证件号码(20)、联系电话(16)、保留(7)卡片信息文件(EF02):卡片序列号(10)、渠道发展...原创 2021-01-14 16:55:23 · 239 阅读 · 0 评论 -
Java密码
通过isoDep.transceive(byte[] commond)控制卡片(传输的byte[]为 APDU命令,该命令返回值后两个字节为报文处理结果,前边的内容为报文返回内容)Java提供了KeyPairGenerator类。 此类用于生成公钥和私钥对。 要使用KeyPairGenerator类生成密钥,请按照以下步骤操作第1步:创建KeyPairGenerator对象KeyPairGenerator类提供getInstance()方法,该方法接受表示所需密钥生成算法的String变量,并返原创 2020-12-27 21:23:19 · 321 阅读 · 0 评论 -
Cipher
Cipher的七个主要公有属性1、ENCRYPT_MODE,整型值1,加密模式,用于Cipher的初始化。 2、DECRYPT_MODE,整型值2,解密模式,用于Cipher的初始化。 3、WRAP_MODE,整型值3,包装密钥模式,用于Cipher的初始化。 4、UNWRAP_MODE,整型值4,解包装密钥模式,用于Cipher的初始化。 5、PUBLIC_KEY,整型值1,解包装密钥模式下指定密钥类型为公钥。 6、PRIVATE_KEY,整型值2,解包装密钥模式下指定密钥类型为私钥。 7原创 2020-12-24 10:21:42 · 1615 阅读 · 0 评论 -
2020-12-23
JNI/NDK开发指南(六)——C/C++访问Java实例方法和静态方法 转载请注明出处:http://blog.csdn.net/xyang81/article/details/42582213 通过前面5章的学习,我们知道了如何通过JNI函数来访问JVM中的基本数据类型、字符串和数组这些数据类型。下一步我们来学习本地代码如何与JVM中任意对象的属性和方法进行交互。比如本地代码调用Java层某个对象的方法或属性,也就是通常我们所说的来自C/C++层本地...转载 2020-12-23 16:02:09 · 401 阅读 · 0 评论 -
Android Studio NDK开发-JNI调用Java方法
Android Studio NDK开发-JNI调用Java方法相对于NDK来说SDK里面有更多API可以调用,有时候我们在做NDK开发的时候,需要在JNI直接Java中的方法和变量,比如callback,系统信息等....如何在JNI中调用Java方法呢?就需要先了解FindClass和GetMethodID了。FindClass和GetMethodID在JNI中可以通过FindClass可以找到Java类,得到jclass,例如:jclass clz=(*env)->FindC转载 2020-12-23 14:49:15 · 281 阅读 · 0 评论 -
Android开发实践:Java层与Jni层的数组传递
Android开发中,经常会在Java代码与Jni层之间传递数组(byte[]),一个典型的应用是Java层把需要发送给客户端的数据流传递到Jni层,由Jni层的Socket代码发送出去,当然,Jni层也需要把从Socket接收到的数据流返回给Java层。我简单地总结了一下,从Java层到Jni层,从Jni层到JAVA层,各有3种传递方式,下面用代码示例简单地介绍一下。示例代码的主要文件有两个,一个是Native.java,是Java层的类;另一个是Native.c,是JNI层的文件,关键的地方我都用注转载 2020-12-23 14:08:58 · 208 阅读 · 0 评论 -
Java中byte与16进制字符串的互相转换
Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。即byte用十六进制表示只占2位。同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上。根据以上原理,我们就可以将b.转载 2020-12-23 13:52:58 · 271 阅读 · 1 评论 -
AndroidJNI 通过C++调用JAVA
1. JNIEnv对象 对于本地函数 JNIEXPORT void JNICALL Java_video1_TestNative_sayHello(JNIEnv * env, jobject obj) { cout<<"Hello Native Test !"<<endl; } JNIEnv类型代表Java环境。通过这个JNIEnv*指针,就可以对Java端的代码进行操作。如,创建Java类得对象...转载 2020-12-22 14:52:58 · 613 阅读 · 0 评论 -
mov和ldr/str的区别
mov和ldr/str的区别ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x86中没有ldr这种指令,因为x86的mov指令可以将数...原创 2020-12-22 11:01:04 · 328 阅读 · 2 评论 -
ARM指令集
ARM指令集http://blog.chinaunix.net/uid-20769502-id-112445.htmlARM指令的基本格式 ARM指令的基本格式为: <Opcode> {<Cond>} {S} <Rd>, <Rn> { , <Opcode2> } 其中,<>内的项是必需的,{}内的项是可选的。 1)Opcode项 Opcode是指令助记符,即操作码,说明...转载 2020-12-20 20:48:18 · 2980 阅读 · 0 评论 -
JNI与NDK的关系
JNI与NDK的关系https://www.jianshu.com/p/0d45d59352e5NDK可以为我们生成了C/C++的动态链接库,JNI是java和C/C++沟通的接口,两者与android没有半毛钱关系,只因为安卓是java程序语言开发,然后通过JNI又能与C/C++沟通,所以我们可以使用NDK+JNI来实现“Java+C”的开发方式。JNIEnv与JavaVMJNIEnv 概念 : 是一个线程相关的结构体, 该结构体代表了 Java 在本线程的运行环境 ;JNIEnv 与转载 2020-12-20 16:03:35 · 195 阅读 · 0 评论 -
JNI学习积累之一 ---- 常用函数大全
http://blog.csdn.net/qinjuning 最近一段时间,在工作方面比较闲,分配的Bug不是很多,于是好好利用这段时间就着源代码看了些许模块,主要方式 还是贼看贼看代码,同时利用烧机的便利,加Log观看,基本上都能弄个脸熟 。心里想着该写点什么了?可是水平不够,再加上 包括很多真正实现地方--中间层,基本上没看。于是乎,也就不好卖弄了。 花了几天时间研究了下JNI,基本上知道如何使用了。照我的观点JNI还是不难的...转载 2020-12-20 16:01:04 · 322 阅读 · 0 评论 -
TEEC_Session;
完成一次完整的CA请求时在linux 用户需要执行的操作依次如下 :调用TEEC_InitializeContext函数打开op-tee驱动文件,获取到操作句柄并存放到TEE_Context类型的变量中。 调用TEEC_OpenSession函数,通过获取到的TEE_Context类型的变量创建一个特定CA与特定TA之间进行通信的通道,如果TA image被存放在file system中,那个在创建session的时候,OP-TEE OS端还会将TA image从file system中加载到OP-T原创 2020-12-19 20:08:01 · 472 阅读 · 1 评论 -
dlsym
转自:http://blog.const.net.cn/a/17154.htmhttps://blog.csdn.net/woyebuzhidao888/article/details/46634591编译时候要加入 -ldl (指定dl库)dlopen基本定义功能:打开一个动态链接库[喝小酒的网摘]http://blog.const.net.cn/a/17154.htm包含头文件:#include <dlfcn.h>函数定义:void * dlopen( ...转载 2020-12-18 09:37:09 · 1380 阅读 · 0 评论 -
pthread_mutex_t
https://www.cnblogs.com/wangqiwen-jer/p/11741933.html在使用互斥锁之前,需要先创建一个互斥锁的对象。 互斥锁的类型是 pthread_mutex_t ,所以定义一个变量就是创建了一个互斥锁。pthread_mutex_t mtx;这就定义了一个互斥锁。但是如果想使用这个互斥锁还是不行的,我们还需要对这个互斥锁进行初始化, 使用函数 pthread_mutex_init() 对互斥锁进行初始化操作。//第二个参数是 NULL 的话,互斥锁转载 2020-12-17 21:06:53 · 11730 阅读 · 0 评论 -
arm2
原创 2020-12-14 13:43:07 · 341 阅读 · 0 评论 -
arm指令
ARM处理器共有37个寄存器。这37个寄存器按其在用户编程中的功能划分,可分为2类寄存器,即31个通用寄存器和6个状态寄存器。这6个状态寄存器在ARM公司文件中其名称分别为:CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fig。这12的作用分别如图1所示:所有处理器模式下都可访问当前程序状态寄存器CPSR。CPSR中包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。在每种异常模式下都有一个对用的程序状态寄存器SPSR。当异常出现时,...原创 2020-12-12 21:28:02 · 920 阅读 · 0 评论 -
ARM汇编指令集汇总
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/qq_40531974/article/details/83897559收起ARM汇编指令集汇总作者:毛茏玮 / Saint掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a微博:https://weibo.com/5458277467/profile?topnav=1&..转载 2020-12-09 13:48:42 · 3393 阅读 · 0 评论 -
arm
ARM处理器一般共有37个寄存器,其中包括:(1)31个通用寄存器,包括PC(程序计数器)在内,都是32位的寄存器。(2)6个状态寄存器,都是32位的寄存器。ARM处理器共有7种不同的处理器模式: 用户模式(User),快速中断模式(FIQ),普通中断模式(IRQ),管理模式(Svc),数据访问中止模式(Abort),未定义指令中止模式(Und),系统模式(Sys), 在每一种处理器模式中有一组相应的寄存器。在任意一种处理...原创 2020-12-08 17:23:06 · 259 阅读 · 0 评论 -
编译器
编译器的结构我们上面大概了解了一下语言的处理过程,下面我们就来了解一下编译器的内部结构,编译器内部其实具有两种结构:分析(analysis)部分和整合(synthesis)部分。分析过程相当于是把源程序分成多个结构,每个结构都有特定的语法格式进行校验,在经由每个校验后,如果不满足指定的语法格式则进行提醒,使用户进行修改。分析部分还会收集有关源程序的信息,会把收集到的信息存放在一个被称为符号表(symbol table)的数据结构中。符号表和中间表示形式一起传给整合部分。整合过程是根据分析...原创 2020-09-26 17:27:26 · 129 阅读 · 0 评论 -
qemu1
你可能好奇如何使用 QEMU 创建一个新的虚拟机。第一步是为虚拟机创建一个硬盘镜像。然后就可以安装 Ubuntu 9.10 了;这里我们创建一个 10GB 的硬盘镜像就足够了。使用以下命令创建: 1 2 3 $ qemu-img create ubuntu.img 10G $ls-lh ubuntu.img -rw-r--r--. 1 root root 10G Mar 11 11:54 ubuntu.img qemu-s...原创 2020-09-22 14:30:23 · 207 阅读 · 0 评论 -
qemu
Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成虚拟化工作,因为 KVM 是硬件辅助的虚拟化技术,主要负责 比较繁琐的 CPU 和内存虚拟化,而 Qemu 则负责 I/O 虚拟化,两者合转载 2020-09-22 13:51:45 · 194 阅读 · 0 评论