IT点滴

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 48 下一页

2014年3月20日

摘要: 今天在使用Outlook express调试CSP程序时,发现数字证书总是加载不上(提示该数字证书已经被破坏),使用断点进去跟踪一下,发现在CSP程序中调用CPVerifySignature函数时返回80090006错误(不是一个合法的签名),因为这里CPVerifySignature函数是windows提供的SPI接口函数,肯定不会有错,推测是不是传进去的签名值发生了错误,然而这个签名值来自哪里呢?应该是来自上层的Crypto应用(即Outlook express程序),推测在证书验证时会调用哪些函数,在使用CPVerifySignature时,传入了签名值,hash对象句柄,和公钥句柄,. 阅读全文

posted @ 2014-03-20 14:01 Ady Lee 阅读(767) 评论(0) 推荐(0) 编辑

摘要: 这段时间要实现一个认证协议,分为客户端和服务器端,客户端使用windows操作系统,服务器端使用linux操作系统,在客户端下(windows),使用windows证书库中的签名证书对消息进行签名(使用windows的crypto库),然后在服务器端(linux)下,使用OpenSSL库对签名值进行验证~~客户端使用函数接口:CertOpenSystemStore — 打开系统证书库CryptUIDlgSelectCertificateFromStore — 从证书库中选择证书,获取证书上下文CertGetCertificateContextProperty — 获取属性CERT_KEY_.. 阅读全文

posted @ 2014-03-20 13:59 Ady Lee 阅读(1164) 评论(0) 推荐(0) 编辑

摘要: 前一段时间对OpenSSL库中的SSL通讯稍微琢磨了一下,在百度文库中找了个示例程序,然后在机器上跑,哇塞,运行成功!那时那个惊喜啊,SSL蛮简单的嘛。前几天,老板要我整一个SSL通讯,要使用windows证书库中的证书进行双向认证,我就想,那不是一小case嘛,于是没怎么放在心上,先休息两天再说。。昨天开完会后,决定开始整。。一打开原来做的SSL工程,我靠,傻眼了,原来示例程序中使用的都是OpenSSL生成的,例如CA证书,Server端证书,Client端证书,以及各自的密钥文件,我想,这咋办呢,还是把windows证书库中的证书先导出来,然后在程序中使用证书文件吧,但又一想,如果是多.. 阅读全文

posted @ 2014-03-20 13:58 Ady Lee 阅读(1957) 评论(0) 推荐(0) 编辑

摘要: 上面四个属性是CertSetCertificateContextProperty或CertGetCertificateContextProperty可以为证书上下文设置的几个属性,下面对它们的关联简单的进行分析(其中的意义我也不太清楚):通过CERT_KEY_CONTEXT_PROP_ID属性,我们可以为证书上下文设置一个CERT_KEY_CONTEXT结构体,在MSDN中,我们可以看到结构体的定义:typedef struct _CERT_KEY_CONTEXT { DWORD cbSize; HCRYPTPROV hCryptProv; DWORD ... 阅读全文

posted @ 2014-03-20 13:57 Ady Lee 阅读(698) 评论(0) 推荐(0) 编辑

摘要: 证书的两种形式:1、带私钥的证书,即p12格式证书(后缀为.pfx)2、不带私钥的证书,有多种格式,通常我们使用的是cer格式证书(后缀为.cer)当我们安装.pfx格式证书时,windows的安装程序会为我们生成一个唯一的密钥容器(密钥容器名为GUID格式),并把证书中的私钥存储在密钥容器中,然后把脱除私钥的证书(为.cer格式证书)存放在证书库中(如果是个人证书,会默认存放在个人证书库,也就是MY系统证书库中),证书库并为证书维护一个CERT_KEY_PROV_INFO_PROP_ID属性,通过此属性可以获取存储私钥的CSP和密钥容器,所以当我们使用证书进行数字签名时,可以找到对应的CSP 阅读全文

posted @ 2014-03-20 13:55 Ady Lee 阅读(684) 评论(0) 推荐(0) 编辑

摘要: 这两个星期真是被OpenSSL给烦透了,几个很简单基本的问题(如果没人告诉你真的很难测出来)把我搞的。。哎,有时候真是不知道自己该不该搞技术,发现自己头脑真是蠢得很。。。直接上正题。第一个问题:前面讲过OpenSSL可以使用windows下的CAPI引擎(我也不太清楚是从哪个版本开始后就开始支持了,网上说是0.9.8i后),但是OpenSSL在windows下默认编译时是不会把它加入内嵌引擎的,所以我们要在编译时设置一些参数。。如果要使用CAPI引擎,我们要在编译源码时使用:>perl Configure VC-WIN32 enable-capieng -DOPENSSL_SSL_CLI 阅读全文

posted @ 2014-03-20 13:22 Ady Lee 阅读(1102) 评论(0) 推荐(0) 编辑

2014年3月19日

摘要: http://stackoverflow.com/questions/1231178/load-an-x509-pem-file-into-windows-cryptoapiI discovered the "magic" sequence of calls to import a RSA public key in PEM format. Here you go:decode the key into a binary blob with CryptStringToBinary; pass CRYPT_STRING_BASE64HEADER in dwFlagsdecod 阅读全文

posted @ 2014-03-19 16:51 Ady Lee 阅读(842) 评论(0) 推荐(0) 编辑

摘要: .net平台下面的RSA算法实现是RSACryptoServiceProvider,如果安装了 Microsoft Enhanced Cryptographic Provider,则 RSACryptoServiceProvider 支持长度从 384 位至 16384 位(增量为 8 位)的密钥。如果安装了 Microsoft Base Cryptographic Provider,则支持长度从 384 位至 512 位(增量为 8 位)的密钥。 目前该算法支持的填充Padding算法为PKCS#1 1.5和OAEPPadding,而签名算法目前仅支持SHA1withRSA算法,其他的好像没 阅读全文

posted @ 2014-03-19 16:47 Ady Lee 阅读(1463) 评论(0) 推荐(0) 编辑

摘要: 很久以前的文章中,演示了如何对于.net和win32下面的delphi的RSA互操作性的实现,对于C#和JAVA之前的RSA加密解密也是很简单的,一般都采用了标准的规范,所以在互操作性方面是很方便的。之前也有博友私信请教这方面的问题,现在放出一个demo实现:一、概述算法:RSA/ECB/PKCS1PaddingRSA KEY:为了便于演示,使用http://www.cnblogs.com/midea0978/articles/768824.html中的Key代码:C# & JAVA二、JAVA平台1importorg.junit.Test;2importsun.misc.BASE64 阅读全文

posted @ 2014-03-19 16:46 Ady Lee 阅读(455) 评论(0) 推荐(0) 编辑

摘要: .NET_RSA加密全接触(重、难点解析) .NET Framework提供了两个类供我们使用RSA算法,分别是:用于加密数据的RSACryptoServiceProvider和用于数字签名的DSACryptoServiceProvider,本文主要谈论RSACryptoServiceProvider的使用以及微软实现RSA算法时的一些主要特点。1、.NET中RSA密钥格式RSA的密钥有两种表现形式,一种是通过RSAParameters对象来表现,另一种是通过XML字符串来表现,当通过默认构造函数构造一个RSACryptoServiceProvider实例的时候,会自动生成一对公私钥,可以通过 阅读全文

posted @ 2014-03-19 16:44 Ady Lee 阅读(656) 评论(0) 推荐(0) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 48 下一页