工作笔记:TrueCrypt编译记录

工作笔记:TrueCrypt编译记录

TrueCrypt的最新版本6.2可以从官方网站上下载,我从这里下载了一个6.1的
http://freedos.pri.ee/truecrypt/

在TrueCrypt官方网站上很多旧版本都没了,这里却很全。

首先,WINDDK7与VS2008/2005自身的头文件是冲突的。编译前要把WINDDK7的头文件目录都去掉注释掉。否则一大堆IOS*.h错误

 

还有,源码目录中要去掉空格, 否则ddk build 出错。

1.下载NASM 并加入PATH
http://www.google.com/search?hl=en&source=hp&q=nasm&aq=f&oq=&aqi=n1g3g-s1g6
http://www.nasm.us/
http://www.nasm.us/pub/nasm/releasebuilds/2.07/win32/
2.下载GZIP 并加入PATH
http://www.google.com/search?hl=en&source=hp&q=gzip.exe&aq=f&oq=&aqi=g6
http://www.gzip.org/#exe
http://www.gzip.org/gzip124xN.zip

(这里没有 ftp://ftp.gnu.org/gnu/gzip/)

3.下载PKCS11

(1)先用的 ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/里的
pkcs11.h,pkcs11f.h,pkcs11t.h(把后两个也加入#include中)

编译仍然是好多错误,可能是版本太不一样了
CK_UTF8CHAR,CK_TRUE都没有定义

(2)于是又用这里的
http://svn.open.net/projects/open/test/time/open/pkcs11-headers/
/* $Revision: 1.6 $ */
好,只有4个错误了:CKR_NEW_PIN_MODE和CKR_NEXT_OTP没有定义

参考
http://mirrors.evolva.ro/zenwalk/source/extra/xap/truecrypt/otp-pkcs11.h
里的定义

        /* A.8 Return values */
#define CKR_NEW_PIN_MODE      0x000001B0
#define CKR_NEXT_OTP          0x000001B1

OK!
看到http://blog.163.com/lll332/blog/static/1553692220093404635752/里说把相关的注释掉,HH



4.安装 VC 1.52
MSVC16_ROOT=C:/MSVC

5.
WINDDK_ROOT=E:/WinDDK/7600.16385.0

all ok!

 

选择ALL DEBUG ,编译 成功了。

 

f7
E:/tddown/TrueCrypt_6.1_Source/Debug/Setup Files里出现了程序!
click TrueCrypt.exe!

copy "E:/tddown/TrueCrypt_6.1_Source/Release/Setup Files" to "debug/setup files".
click TrueCrypt Setup.exe!

to make a filedisk , click Truecrypt Format.exe

========================


pkcs11.h
pkcs11.h no such file or directory
truecrypt pkcs11.h no such file or directory

http://en.wikipedia.org/wiki/PKCS11
http://mirrors.evolva.ro/zenwalk/source/extra/xap/truecrypt/otp-pkcs11.h

Building TrueCrypt from source [SOLVED]
http://forum.mandriva.com/viewtopic.php?t=97639

http://www.linuxquestions.org/questions/linux-software-2/true-crypt-installation-help-696986/



http://www.reddit.com/r/programming/comments/7otuy/who_wrote_this_software_an_excia_agent/
http://initiative.yo2.cn/archives/636142
TrueCrypt可能是CIA的后门程序

baidu cia truecrypt;

============================
http://blog.csdn.net/greenery/archive/2009/01/21/3848959.aspx
 11.3 PKCS标准 

摘自《公钥基础设施PKI及其应用》第11章

11.3  PKCS标准

公钥密码标准(PKCS)最初是为推进公钥密码系统的互操作性,由RSA实验室与工业界、学术界和政府代表合作开发的。在RSA带领下,PKCS的研究随着时间不断发展,它涉及了不断发展的PKI格式标准、算法和应用程序接口。PKCS标准提供了基本的数据格式定义和算法定义,它们实际是今天所有 PKI实现的基础。

11.3.1  PKCS标准的内容

PKCS标准如下:

(1)PKCS#1:RSA加密标准。PKCS#1定义了RSA公钥函数的基本格式标准,特别是数字签名。它定义了数字签名如何计算,包括待签名数据和签名本身的格式;它也定义了PSA公/私钥的语法。

(2)PKCS#2:涉及了RSA的消息摘要加密,这已被并入PKCS#1中。

(3)PKCS#3:Diffie-Hellman密钥协议标准。PKCS#3描述了一种实现Diffie- Hellman密钥协议的方法。

(4)PKCS#4:最初是规定RSA密钥语法的,现已经被包含进PKCS#1中。

(5)PKCS#5:基于口令的加密标准。PKCS#5描述了使用由口令生成的密钥来加密8位位组串并产生一个加密的8位位组串的方法。PKCS#5可以用于加密私钥,以便于密钥的安全传输(这在PKCS#8中描述)。

(6)PKCS#6:扩展证书语法标准。PKCS#6定义了提供附加实体信息的X.509证书属性扩展的语法(当PKCS#6第一次发布时,X.509还不支持扩展。这些扩展因此被包括在X.509中)。

(7)PKCS#7:密码消息语法标准。PKCS#7为使用密码算法的数据规定了通用语法,比如数字签名和数字信封。PKCS#7提供了许多格式选项,包括未加密或签名的格式化消息、已封装(加密)消息、已签名消息和既经过签名又经过加密的消息。

(8)PKCS#8:私钥信息语法标准。PKCS#8定义了私钥信息语法和加密私钥语法,其中私钥加密使用了PKCS#5标准。

(9)PKCS#9:可选属性类型。PKCS#9定义了PKCS#6扩展证书、PKCS#7数字签名消息、PKCS#8私钥信息和PKCS#10证书签名请求中要用到的可选属性类型。已定义的证书属性包括E-mail地址、无格式姓名、内容类型、消息摘要、签名时间、签名副本(counter signature)、质询口令字和扩展证书属性。

(10)PKCS#10:证书请求语法标准。PKCS#10定义了证书请求的语法。证书请求包含了一个唯一识别名、公钥和可选的一组属性,它们一起被请求证书的实体签名(证书管理协议中的PKIX证书请求消息就是一个PKCS#10)。

(11)PKCS#11:密码令牌接口标准。PKCS#11或“Cryptoki”为拥有密码信息(如加密密钥和证书)和执行密码学函数的单用户设备定义了一个应用程序接口(API)。智能卡就是实现Cryptoki的典型设备。注意:Cryptoki定义了密码函数接口,但并未指明设备具体如何实现这些函数。而且Cryptoki只说明了密码接口,并未定义对设备来说可能有用的其他接口,如访问设备的文件系统接口。

(12)PKCS#12:个人信息交换语法标准。PKCS#12定义了个人身份信息(包括私钥、证书、各种秘密和扩展字段)的格式。PKCS#12有助于传输证书及对应的私钥,于是用户可以在不同设备间移动他们的个人身份信息。

(13)PDCS#13:椭圆曲线密码标准。PKCS#13标准当前正在完善之中。它包括椭圆曲线参数的生成和验证、密钥生成和验证、数字签名和公钥加密,还有密钥协定,以及参数、密钥和方案标识的ASN.1语法。

(14)PKCS#14:伪随机数产生标准。PKCS#14标准当前正在完善之中。为什么随机数生成也需要建立自己的标准呢?PKI中用到的许多基本的密码学函数,如密钥生成和Diffie-Hellman共享密钥协商,都需要使用随机数。然而,如果“随机数”不是随机的,而是取自一个可预测的取值集合,那么密码学函数就不再是绝对安全了,因为它的取值被限于一个缩小了的值域中。因此,安全伪随机数的生成对于PKI的安全极为关键。

(15)PKCS#15:密码令牌信息语法标准。PKCS#15通过定义令牌上存储的密码对象的通用格式来增进密码令牌的互操作性。在实现 PKCS#15的设备上存储的数据对于使用该设备的所有应用程序来说都是一样的,尽管实际上在内部实现时可能所用的格式不同。PKCS#15的实现扮演了翻译家的角色,它在卡的内部格式与应用程序支持的数据格式间进行转换。

11.3.2  PKCS主要用途

以上标准主要用于用户实体通过RA的证书申请、用户的证书更新过程。当证书作废时,RA通过CA向目录服务器中发布证书撤销列表CRL,用于扩展证书内容,以及数字签名与验签过程和实现数字信封格式定义等一系列相关协议。


http://blog.csdn.net/mysefs/archive/2007/07/25/1707314.aspx


Linux 上的 PKCS #11 openCryptoki(转载)  收藏
http://blog.csdn.net/zjh77/archive/2005/07/29/439321.aspx  
http://www-128.ibm.com/developerworks/cn/security/s-pkcs/index.html
·

你可能感兴趣的:(工作笔记:TrueCrypt编译记录)