Tag: openssl

ruby河豚的最后数字差异

我有一些来自API提供商的testdata密钥/文本/加密,现在我正在尝试使用下面的函数产生相同的加密结果,但我的结果会从241位数的最后16位中提供的结果转移。 你有什么想法,原因是什么? 我确信,’bf-ecb’是正确的模式,并尝试使用url编码,但到目前为止还没有成功。 require ‘openssl’ def encrypt(key, data) cipher = OpenSSL::Cipher::Cipher.new(‘bf-ecb’).send(:encrypt) cipher.key = key result = cipher.update(data) << cipher.final hexed = '' result.each_byte { |c| hexed << '%02x' % c } hexed.upcase end UPDATE 还尝试解密示例结果导致OpenSSL :: Cipher :: CipherError“bad decrypt”

Heroku上的OpenSSL :: SSL :: SSLError

我正在尝试通过Facebook或Twitter对用户进行身份validation,让他们填写他们的信息,然后单击“保存”(从而创建用户记录)。 我在最后一步收到OpenSSL错误 – 点击保存后。 这发生在Devise RegistrationsController #create方法中。 所以我在Heroku上托管的Rails应用程序中收到此错误: 2012-07-28T18:25:13+00:00 app[web.1]: OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed) 我见过很多解决方案,但都没有。 以下是我尝试过的一些事情: 1)安装certifiedgem 2)将Herokugem升级到v2.30,再次推动 3)这个: Rails.application.config.middleware.use OmniAuth::Builder do provider :twitter, TWITTER_KEY, TWITTER_SECRET, {:client_options => {:ssl => {:ca_file => “/usr/lib/ssl/certs/ca-certificates.crt”}}} provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET, {:scope => “publish_actions,user_location,email”, :client_options => {:ssl => {:ca_file => “/usr/lib/ssl/certs/ca-certificates.crt”}}} […]

来自模数和指数的SSH SubjectPublicKeyInfo

我正在从公共SSH密钥中提取模数和指数,目的是生成PEM公钥。 这是我到目前为止的代码: require “base64” require “openssl” def unpacked_byte_array(ssh_type, encoded_key) prefix = [7].pack(“N”) + ssh_type decoded = Base64.decode64(encoded_key) # Base64 decoding is too permissive, so we should validate if encoding is correct unless Base64.encode64(decoded).gsub(“\n”, “”) == encoded_key && decoded.slice!(0, prefix.length) == prefix raise PublicKeyError, “validation error” end data = [] until decoded.empty? front = decoded.slice!(0,4) size […]

Ruby SSL握手没有收到服务器Hello回来 – 使用代理Net :: HTTP

我使用Ruby SSL双向身份validation连接到外部API。 我的最新脚本在这里: namespace :rnif_message do # With Proxy task send_test_index: :environment do our_cert = File.read(File.join(Rails.root, ‘ssl’, ‘invoice’, ‘test’, ‘cert20190116_ourcert.der’)) their_test_cert = File.read(File.join(Rails.root, ‘ssl’, ‘invoice’, ‘test’, ‘testcert2016_theircert.der’)) cert_store = OpenSSL::X509::Store.new # Contains their intermediate CA files cert_store.add_path File.join(Rails.root, ‘ssl’, ‘invoice’, ‘test’, ‘ca’) cert_store.add_cert OpenSSL::X509::Certificate.new(their_test_cert) uri = URI(“https://xml.digital.com/wm.rn/receive”) proxy_host = “us-static-02.qg.com” proxy_port = “port” proxy_user = […]

OpenSSL :: X509 ::显示错误域名证书的证书

我正在遍历域列表以查看a)是否有443个侦听器和b)收集ssl证书过期,签名算法和公用名。 所有拥有443监听器的域都会报告正确的ssl证书(与Chrome报告的内容相匹配),但是,有一个域无法正确报告 – myproair.com,它报告了parkinsonsed.com的证书 – 任何想法? # ssl cert lookup begin timeout(1) do tcp_client = TCPSocket.new(“#{instance[“domain”]}”, 443) ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client) ssl_client.connect cert = OpenSSL::X509::Certificate.new(ssl_client.peer_cert) ssl_client.sysclose tcp_client.close #http://ruby-doc.org/stdlib-2.0/libdoc/openssl/rdoc/OpenSSL/X509/Certificate.html date = Date.parse((cert.not_after).to_s) row.push(“#{date.strftime(‘%F’)} #{cert.signature_algorithm} #{cert.subject.to_a.select{|name, _, _| name == ‘CN’ }.first[1]}”.downcase.ljust(57)) end rescue SocketError row.push(“down”.ljust(57)) rescue Errno::ECONNREFUSED row.push(“connection refused”.ljust(57)) rescue Errno::ECONNRESET row.push(“connection reset”.ljust(57)) rescue Timeout::Error row.push(“no 443 […]

如何使用AES 256 ECB PKCS5Padding在ruby中加密数据

我希望用AES 256bit ECB模式加密数据使用PKCS5padding我的ruby方法如下,如何在这里使用PKCS5Padding def encrypt(raw_data,key) cipher = OpenSSL::Cipher::AES.new(256, :ECB) cipher.encrypt cipher.key = key encrypted_data = cipher.update(raw_data) + cipher.final end 这里的密钥是OpenSSL :: PKey :: RSA类型, no implicit conversion of OpenSSL::PKey::RSA into String抛出no implicit conversion of OpenSSL::PKey::RSA into Stringexception的no implicit conversion of OpenSSL::PKey::RSA into String

证书无效的证书:嵌套asn1错误

我想从字符串创建证书。 为什么这不起作用: OpenSSL::X509::Certificate.new(OpenSSL::X509::Certificate.new.to_pem) 它返回: OpenSSL::X509::CertificateError: nested asn1 error

CSR失败:错误解析请求ASN1错误标记值已满足(ASN:267 CRYPT_E_ASN1_BADTAG)

我试图通过以下方式提交CSR请求: require ‘openssl’ require ‘json’ def public_key_info key_info = private_key.public_key.to_pem key_info = key_info.sub! ‘—–BEGIN PUBLIC KEY—–‘, ‘—–BEGIN CERTIFICATE REQUEST—–‘ key_info = key_info.sub! ‘—–END PUBLIC KEY—–‘, ‘—–END CERTIFICATE REQUEST—–‘ key_info end # “Creating a new 2048bit RSA Keypair…” def private_key @private_key = OpenSSL::PKey::RSA.new 2048 end payload = { “CsrData” => public_key_info, “certTemplate” => “MyTemplate” } encoded […]

错误:执行gem时…(OpenSSL :: X509 :: StoreError)

我试图以管理员身份将serialport安装到Windows 7中,但我遇到以下错误: C:\Sites>gem install serialport ERROR: While executing gem … (OpenSSL::X509::StoreError) 我尝试了以下内容,但他们没有帮助: OpenSSL :: X509 :: StoreError:cert已经在哈希表中? Ruby在哪里寻找SSL_CERT_FILE? 我试图从网上找到这些解决方案。 但是,它仍然无法工作。 有任何想法吗? 以下是我的电脑的gem环境: C:\Sites>gem env RubyGems Environment: – RUBYGEMS VERSION: 2.2.2 – RUBY VERSION: 2.1.5 (2014-11-13 patchlevel 273) [i386-mingw32] – INSTALLATION DIRECTORY: C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0 – RUBY EXECUTABLE: C:/RailsInstaller/Ruby2.1.0/bin/ruby.exe – EXECUTABLE DIRECTORY: C:/RailsInstaller/Ruby2.1.0/bin – SPEC CACHE DIRECTORY: C:/Users/5004118294/.gem/specs […]

Ruby openssl文档

有没有Ruby的openssl库的在线文档? 我所能找到的只是博客文章和第三方文章,rdoc本身并没有真正解释如何逐步使用库。