cryptopro 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG ADDED
@@ -0,0 +1,2 @@
1
+ 14 Nov 2011 - v.0.0.3
2
+ * добавлена возможность выпустить сертификат в тестовом УЦ
data/README.textile CHANGED
@@ -11,9 +11,13 @@ h1. Использование
11
11
 
12
12
  gem 'cryptopro'
13
13
 
14
- В коде:
14
+ Проверка подписи:
15
15
 
16
16
  Cryptopro::Signature.verify(:message => "message", :signature => "signature", :certificate => "certificate")
17
17
 
18
+ Получение сертификата в тестовом УЦ:
19
+
20
+ Cryptopro::Csr.issue_test_certificate(csr)
21
+
18
22
  Copyright (c) 2011 divineforest, evrone.com
19
23
  This project rocks and uses MIT-LICENSE.
data/lib/cryptopro.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'cryptopro/csr'
1
2
  require 'cryptopro/signature'
2
3
 
3
4
  module Cryptopro
@@ -0,0 +1,24 @@
1
+ module Cryptopro
2
+ class Csr
3
+ TEST_CA_UPLOAD_PAGE_URL = "http://www.cryptopro.ru/certsrv/certfnsh.asp"
4
+ TEST_CA_DOWNLOAD_PAGE_URL = "http://www.cryptopro.ru/certsrv/certnew.cer?ReqID=%{ca_request_id}&Enc=b64"
5
+
6
+ def self.issue_test_certificate(csr)
7
+ upload_uri = URI(TEST_CA_UPLOAD_PAGE_URL)
8
+ upload_response = Net::HTTP.post_form(upload_uri,
9
+ 'Mode' => 'newreq',
10
+ 'CertRequest' => csr
11
+ )
12
+
13
+ ca_request_id = upload_response.body.match(/ReqID\=(\d+)/)[1]
14
+
15
+ if ca_request_id
16
+ download_url_string = TEST_CA_DOWNLOAD_PAGE_URL % {:ca_request_id => ca_request_id}
17
+ download_uri = URI(download_url_string)
18
+ Net::HTTP.get(download_uri)
19
+ else
20
+ raise "CSR not accepted"
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module Cryptopro
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cryptopro
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - divineforest
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-11-02 00:00:00 +03:00
18
+ date: 2011-11-14 00:00:00 +03:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -42,12 +42,14 @@ extra_rdoc_files: []
42
42
 
43
43
  files:
44
44
  - .gitignore
45
+ - CHANGELOG
45
46
  - Gemfile
46
47
  - MIT-LICENSE
47
48
  - README.textile
48
49
  - Rakefile
49
50
  - cryptopro.gemspec
50
51
  - lib/cryptopro.rb
52
+ - lib/cryptopro/csr.rb
51
53
  - lib/cryptopro/signature.rb
52
54
  - lib/cryptopro/version.rb
53
55
  has_rdoc: true