Class: Ekey::Certificate
- Inherits:
-
Object
- Object
- Ekey::Certificate
- Defined in:
- lib/ekey/certificate.rb
Constant Summary collapse
- CA_UPLOAD_PAGE_URL =
"http://cabinet.ekey.ru/api/1.0/request/put"
- CA_DOWNLOAD_PAGE_URL =
"http://cabinet.ekey.ru/api/1.0/certificates/get"
- CERTIFICATE_LINE_LENGTH =
64
Class Method Summary collapse
-
.add_container_to_csr(cert_req) ⇒ Object
Делит длинную строку base64 на строки по 64 символа.
- .get_certificates(ca_request_ids) ⇒ Object
- .issue(csr, signature) ⇒ Object
Class Method Details
.add_container_to_csr(cert_req) ⇒ Object
Делит длинную строку base64 на строки по 64 символа. Это требование cabinet.ekey.ru к запросам на выпуск сертификата (CSR).
24 25 26 27 28 |
# File 'lib/ekey/certificate.rb', line 24 def self.add_container_to_csr(cert_req) stripted_body = cert_req.gsub("-----BEGIN CERTIFICATE REQUEST-----", '').gsub("-----END CERTIFICATE REQUEST-----", '').gsub(/[\r\n\s]/, '') parts = stripted_body.scan(/.{1,#{CERTIFICATE_LINE_LENGTH}}/) csr_with_container = "-----BEGIN CERTIFICATE REQUEST-----\n#{parts.join("\n")}\n-----END CERTIFICATE REQUEST-----" end |
.get_certificates(ca_request_ids) ⇒ Object
39 40 41 42 43 44 |
# File 'lib/ekey/certificate.rb', line 39 def self.get_certificates(ca_request_ids) id_list = Array(ca_request_ids).join(', ') ca_responce = RestClient.post(CA_DOWNLOAD_PAGE_URL, { :api_key => Ekey::Config.api_key, :id_list => id_list }) JSON(ca_responce) end |
.issue(csr, signature) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/ekey/certificate.rb', line 30 def self.issue(csr, signature) upload_responce = RestClient.post(CA_UPLOAD_PAGE_URL, { :api_key => Ekey::Config.api_key, :pkcs10 => add_container_to_csr(csr), :rcsign => signature }, :multipart => true) JSON(upload_responce) end |