Tag: openssl

SSL_connect SYSCALL返回= 5 errno = 0 state = SSLv2 / v3读取服务器hello A.

我有一个ruby客户端,使用IMAP和SSL连接到Exchange服务器。 我使用Ruby Net :: IMAP库(它使用openssl)来连接。 它已经好几个月了。 交换服务器管理员从godaddy安装了新的证书,现在我收到此错误: SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A 有谁知道这个错误意味着什么? (我试过谷歌搜索) 我怀疑新证书存在问题导致此问题,但我不知道如何排除故障。 另外我知道你可以在使用NET:HTTP时禁用证书validation: http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl? 但我无法弄清楚如何使用NET:IMAP。 我想禁用它以查看这是否是问题。 至于代码我使用:我使用这个(或非常接近这个) http://github.com/look/fetcher/blob/master/lib/fetcher/imap.rb 我尝试更改为:@connection = Net :: IMAP.new(@ server,@ port,@ sss,nil,false) 这是堆栈跟踪 checking emails on: Tue Aug 17 20:48:01 +0000 2010 rake aborted! SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read […]

使用JS中的SJCL和Ruby中的OpenSSL进行椭圆曲线加密

我正在开发一个Web应用程序,它必须能够在服务器端使用ECC加密数据并在浏览器中解密。 我发现在JS中唯一可以使用的库是SJCL。 但是,由于目前SJCL中的ECC支持似乎有点放弃,我使用了fork ,它具有关键的序列化支持和演示 ,以便于理解。 首先,我在JS中生成一个ECC密钥对: keypair = sjcl.ecc.elGamal.generateKeys(384, 10); document.writeln(JSON.stringify(keypair.pub.serialize())); 这输出类似于: {“point”:[1110230655,241884220,775655552,-849225963,-883815628,-1984298210,-736346431,1387519594,-1810604283,-1235638489,1333314084,-1219216530,614640565,-1148742381,1038670260,1013716131,758346573,1162278003,1232401864,-1948620456,533899535,-1478577959,1853846180,-1553049184],”curve”:384} 然后我尝试将此公钥转换为OpenSSL可理解的格式。 ar = [1110230655,241884220,775655552,-849225963,-883815628,-1984298210,-736346431,1387519594,-1810604283,-1235638489,1333314084,-1219216530,614640565,-1148742381,1038670260,1013716131,758346573,1162278003,1232401864,-1948620456,533899535,-1478577959,1853846180,-1553049184] # ugly bit magic to somehow convert the above array into a proper byte array (in form of a string) kstr = [(ar.map { |i| (i>=0)?(‘0’*(8-i.to_s(16).length)+i.to_s(16)):(“%08X” % (2**32-1+i+1)) }*”).upcase].pack(“H*”) # opening a public key generated with the openssl […]

Ruby没有找到新版本的OpenSSL

OpenSSL::OPENSSL_VERSION_NUMBER何时OpenSSL::OPENSSL_VERSION_NUMBER地设置? 为什么不设置我刚刚安装的最新OpenSSL? 首先是错误: $ gem install activesupport -v ‘3.2.13’ Error while executing gem … (RuntimeError) Unsupported digest algorithm (SHA512) 如果我直接进入irb,我可以看到Ruby正在使用“旧”openssl: $ irb >> require ‘openssl’ => true >> OpenSSL::Digest.new(‘sha512’) RuntimeError: Unsupported digest algorithm (sha512) >> OpenSSL::OPENSSL_VERSION_NUMBER.to_s(16) “9070cf” 这告诉我Ruby没有找到我刚刚构建的OpenSSL的本地版本,它至少应该是0x908000。 相关代码: # file: usr/lib/ruby/2.0.0/openssl/digest.rb … alg = %w(DSS DSS1 MD2 MD4 MD5 MDC2 RIPEMD160 SHA SHA1) if […]

如何使用Ruby加密和签署iphone移动配置文件

我有一个由iphone配置实用程序生成的xml格式(模板)的unsigned mobileconfig文件。 我想使用openssl对其进行加密和签名,并能够使用Ruby on rails在iphone上安装它。 我不想创建一个SCEP服务器来执行此操作,因为我想继续动态修改此模板xml文件并使用某个URL提供它。 感谢您的帮助。 我已经检查了以下问题但是它不清楚如何加密可以在iphone上正确安装的文件 – 因为当我试图模仿加密文件格式时我不断得到“由于未知错误而无法安assembly置文件”来自iphone配置实用程序,只加密部件并适当地附加/添加配置文件的其他部分。 使用Ruby on Rails签署iPhone配置XML配置文件 apple的这本手册很有用,但它更适合创建SCEP服务器而不是用于操作模板mobileconfig文件 – http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/profile-service/profile-service.html

使用任何东西在Ruby中的Objective-C / Decrypt中加密

我们使用此代码在iPhone上的Objective-C中进行加密: – (NSMutableData*) EncryptAES: (NSString *) key { char keyPtr[kCCKeySizeAES128+1]; bzero( keyPtr, sizeof(keyPtr) ); [key getCString: keyPtr maxLength: sizeof(keyPtr) encoding: NSUTF8StringEncoding]; size_t numBytesEncrypted = 0; NSUInteger dataLength = [self length]; size_t bufferSize = dataLength + kCCBlockSizeAES128; void *buffer = malloc(bufferSize); NSMutableData *output = [[NSData alloc] init]; CCCryptorStatus result = CCCrypt( kCCEncrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding, keyPtr, kCCKeySizeAES128, […]

RVM和OpenSSL的麻烦

试图为同事设置一个新的macbook。 不顺利。 首先我安装OpenSSL: Heathers-MacBook-Pro:~ heather$ rvm pkg install openssl Fetching openssl-1.0.1c.tar.gz to /Users/heather/.rvm/archives ######################################################################## 100.0% Extracting openssl to /Users/heather/.rvm/src/openssl-1.0.1c Configuring openssl in /Users/heather/.rvm/src/openssl-1.0.1c. Compiling openssl in /Users/heather/.rvm/src/openssl-1.0.1c. Installing openssl to /Users/heather/.rvm/usr Please note that it’s required to reinstall all rubies: rvm reinstall all –force Updating openssl certificates 然后我尝试用openssl安装ruby … Heathers-MacBook-Pro:website heather$ rvm install 1.9.3 –with-openssl-dir=$HOME/.rvm/usr […]

Ruby:SSL_connect SYSCALL返回= 5 errno = 0 state =未知状态(OpenSSL :: SSL :: SSLError)

这个错误的变种已经发布到各地,但没有一个解决方案似乎适合我。 我正在运行ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]和OpenSSL 1.0.1k 8 Jan 2015 。 运行以下内容: require ‘net/http’ require ‘openssl’ url = ‘https://ntpnow.com/’ uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.ssl_version = :TLSv1 http.get(uri.path) 转储此跟踪: /usr/local/lib/ruby/2.2.0/net/http.rb:923:in `connect’: SSL_connect SYSCALL returned=5 errno=0 state=unknown state (OpenSSL::SSL::SSLError) from /usr/local/lib/ruby/2.2.0/net/http.rb:923:in `block in connect’ from /usr/local/lib/ruby/2.2.0/timeout.rb:74:in `timeout’ from /usr/local/lib/ruby/2.2.0/net/http.rb:923:in `connect’ […]

Heroku上的OpenSSL 1.0.1

我的应用程序在针对OpenSSL 1.0.1c构建的Ruby 2.0.0上运行,以支持AES-GCM。 Heroku似乎使用的是OpenSSL 0.9.8k(参见https://twitter.com/sferik/status/314495375555829760 )。 有没有办法升级到1.0.1?

Ruby SSL错误 – sslv3警告意外消息

我正在尝试使用ruby脚本连接到服务器https://www.xpiron.com/schedule 。 但是,当我尝试连接时: require ‘open-uri’ doc = open(‘https://www.xpiron.com/schedule’) 我收到以下错误消息: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert unexpected message from /usr/local/lib/ruby/1.9.1/net/http.rb:678:in `connect’ from /usr/local/lib/ruby/1.9.1/net/http.rb:678:in `block in connect’ from /usr/local/lib/ruby/1.9.1/timeout.rb:44:in `timeout’ from /usr/local/lib/ruby/1.9.1/timeout.rb:87:in `timeout’ from /usr/local/lib/ruby/1.9.1/net/http.rb:678:in `connect’ from /usr/local/lib/ruby/1.9.1/net/http.rb:637:in `do_start’ from /usr/local/lib/ruby/1.9.1/net/http.rb:626:in `start’ from /usr/local/lib/ruby/1.9.1/net/http.rb:1168:in `request’ from /usr/local/lib/ruby/1.9.1/net/http.rb:888:in `get’ from (irb):32 from /usr/local/bin/irb:12:in […]

第二部分:如何使Ruby AES-256-CBC和PHP MCRYPT_RIJNDAEL_128一起发挥得很好

这个问题是我最后一个问题的延续,关于如何使Ruby AES-256-CBC和PHP MCRYPT_RIJNDAEL_128很好地协同工作 。 我现在已经开始工作,但我仍然在努力朝着另一个方向努力。 PHP生成的密码似乎具有所提供的所有信息,但是我无法使用Ruby代码来解密它而不会出错。 这是我用来生成密码的PHP代码: $cleartext = “Who’s the clever boy?”; $key = base64_decode(“6sEwMG/aKdBk5Fa2rR6vVw==\n”); $iv = base64_decode(“vCkaypm5tPmtP3TF7aWrug==”); $cryptogram = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $cleartext, MCRYPT_MODE_CBC, $iv); $result = base64_encode($cryptogram); print “\n’$result’\n”; RESULT ‘JM0OxMINPTnF1vwXdI3XdKI0KlVx210CvpJllFja+GM=’ 然后这是尝试在Ruby中解密: >> cipher = OpenSSL::Cipher::Cipher.new(‘aes-128-cbc’) >> cipher.key = Base64.decode64(“6sEwMG/aKdBk5Fa2rR6vVw==\n”) >> cipher.iv = Base64.decode64(“vCkaypm5tPmtP3TF7aWrug==”) >> cryptogram = Base64.decode64(‘JM0OxMINPTnF1vwXdI3XdKI0KlVx210CvpJllFja+GM=’) >> cleartext = cipher.update(cryptogram) => […]