Changes between Version 4 and Version 5 of comoUsarElApi


Ignore:
Timestamp:
Sep 14, 2015, 9:47:49 AM (9 years ago)
Author:
aaraujo
Comment:

Ejemplo de ruby ahora incluye la firma del contenedor BDOC y su verificación

Legend:

Unmodified
Added
Removed
Modified
  • comoUsarElApi

    v4 v5  
    5252
    5353
    54 En el siguiente código se cargan dos (02) archivos de texto y se agregan a un contenedor BDOC a través del recurso {{{https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/cargas}}}. Luego se listan los archivos que tiene el contenedor con el recurso {{{https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/lista/%s}}}. Para mayor información y documentación de los recursos disponibles siga el enlace: [https://murachi.cenditel.gob.ve/apidoc/].
     54En el siguiente código se cargan dos (02) archivos de texto y se agregan a un contenedor BDOC a través del recurso {{{https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/cargas}}}. Luego se listan los archivos que tiene el contenedor con el recurso {{{https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/lista/%s}}}. Seguidamente se prepara la firma del contenedor BDOC a través del recurso {{{https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/pre}}} que retorna el hash que se debe firmar en el cliente con la clave privada protegida en el dispositivo criptográfico. Luego se completa la firma del contenedor BDOC a través del recurso {{{https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/post}}}. Finalmente se verifica la firma del contenedor BDOC a través del recurso {{{https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/56143d89-1029-4ae4-b023-ca4367a8f34d}}}
     55
     56
     57Para mayor información y documentación de los recursos disponibles siga el enlace: [https://murachi.cenditel.gob.ve/apidoc/].
    5558
    5659
     
    6467require "json"
    6568
    66 # Solicitud POST
     69# Cargas archivo y crear contenedor BDOC
    6770#uri = URI.parse('https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/cargas')
    6871@uri = URI.parse('https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/cargas')
     
    8386
    8487# Listar archivos del contenedor registrado en la llamada anterior
    85 @uri = URI.parse 'https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/lista/%s' % @json_resp['containerId']
     88@container_id = @json_resp['containerId']
     89@uri = URI.parse 'https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/lista/%s' % @container_id
    8690@req = Net::HTTP::Get.new @uri.path
    8791@req['Authorization'] = 'Basic YWRtaW46YWRtaW4='
     
    9296end
    9397
     98# Prepara firma de un contenedor
     99@certificate = "30820512308202FAA003020102020119300D06092A864886F70D01010B05003081AA310B3009060355040613025645310F300D060355040813064D6572696461310F300D060355040713064D65726964613111300F060355040A130843454E444954454C310E300C060355040B13054749445349312E302C06035504030C254175746F7269646164206465204365727469666963616369C3B36E2064656C2047494453493126302406092A864886F70D0109011617616367696473694063656E646974656C2E676F622E7665301E170D3135303930383135333930305A170D3136303930383135333930305A308198310B3009060355040613025645310F300D060355040813064D6572696461310F300D060355040713064D65726964613111300F060355040A130843454E444954454C31133011060355040B130A4465736172726F6C6C6F311630140603550403130D4A6F726765205265646F6E646F3127302506092A864886F70D01090116186A7265646F6E646F4063656E646974656C2E676F622E766530820122300D06092A864886F70D01010105000382010F003082010A0282010100E27AC29BDC3196EFD1F388B6B415F965E7407616448A2A3AF40C7D3E2BFCEA7531A922578B444ACA4386A1744DDCD9507221CCCE9D3A9B81D46FFE274BA378D8413DED29CF596C5F5D7967C9D2E8F1EC1ACDD90582FD8DE055401D9906678DDB4A2F9E4E0FF8041740EAB6A4DFEF308AC1D05824FE4C5CCAA9435F8CAA3C73F937E1BA6F3075CCD2B5D8069BD937B8D9FFD34CB3F8E6B4CFA13BE62110DD677FC4653043ECE4D4E4D9373E01165E6BD33D2B8D1A477AA18E8F1CF68C6476BB30B187BAF2DDC0B8C06DF8292E4C4D57933A44E0B5AA17CC09FE85D4EB9A3F8082F603326FCA407C51691886ED47C15637AE75339F23E8F549F7DCB54CBC6555390203010001A3533051300C0603551D130101FF04023000300E0603551D0F0101FF0404030204F0301106096086480186F84201010404030205A0301E06096086480186F842010D0411160F786361206365727469666963617465300D06092A864886F70D01010B05000382020100556A0C471B30503343A375F54C0DCD345B3BB895A059E734315375B919AEB404C22E897A50D4B983B9480B4BBB48861C8BF27634E185460C95DE010D0DBB0B3091C439AB99ED862134FAD0610F5D7304F0365781FD35FD6340ACBD8EB05866CB44DB02590A06EAAF3978B6EA224F6B226B528DE841273146AFA873A56EE82B149817545074F40B97A26093A76DE174EEBC12285023FAA57A3E24ACC7D3BB0360FFF6D71AB3E3F30EBC07A14F73B974F4623421F762F155E7487F1C44E89F477BAB4A9843FC07DB5AF90943C298DFF5E9B3FDF3358AD145C5138F312170D767F0FEFD2DE7B3BDCD2F54E999A9E10E7B3C7AAF8AACDF65DE9D6FCDBC0E190048623AA494BBB6BA3A0FC0D2E1279D61D36D3B107C48236FA771CD6ED204C97D7AD6369E442DAF8A6E78D7104D4D1C19B0040039CCD20B3A0049236F726AC145AFD37FD54EA0FA44C1CD3131B858DE0D9A904B833DB33F66D75AA7396215561BEB9A0830B4282A08A57944C516F9406A01906D26E6A542861C057ADB34D66BDA2E92A5B62B30DAAD9F27F35348FD3481F18023C2687F8A288BB10B1FBBF5351140DA3BF67AFDFDE805618A355A3BE162C3F93C3F87370B815583EF31CBC68BF1F9CF1B04D6DAA685FD46FF4C5D507BF2C370B9120F07A33F2F9FABA4102A004D8F1CD6136FD63F15E3C26AC73B9ED8BDA930B21DD85F4CF9F778C12DA4B0E459B5BA"
     100@parameters = {"fileId" => @container_id,
     101               "certificate" => @certificate,
     102               "city" => "Rubio",
     103               "state" => "Tachira",
     104               "postalCode" => "1234",
     105               "country" => "Venezuela",
     106               "role" => "Militar",
     107               "addSignature" => "false"}
     108@headers = { "Content-Type" => 'application/json',
     109             "Authorization" => 'Basic YWRtaW46YWRtaW4='}
     110#@uri = URI.parse("https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/firmas/pre")
     111@uri = URI.parse("https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/pre")
     112@http = Net::HTTP.new(@uri.host, @uri.port)
     113@http.use_ssl = true
     114@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
     115@res = @http.post(@uri.path,@parameters.to_json,@headers)
     116@hash = JSON.parse(@res.body)["hash"]
     117puts @hash
     118
     119# Completar firma de contenedor
     120@parameters = {"containerId" => @container_id,
     121               "signature" => @hash}
     122@headers = { "Content-Type" => 'application/json',
     123            "Authorization" => 'Basic YWRtaW46YWRtaW4='}
     124#@uri = URI.parse("https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/firmas/pre")
     125@uri = URI.parse("https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/post")
     126@http = Net::HTTP.new(@uri.host, @uri.port)
     127@http.use_ssl = true
     128@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
     129@res = @http.post(@uri.path,@parameters.to_json,@headers)
     130puts @res.body 
     131
     132
     133# verificacion
     134# Listar archivos del contenedor registrado en la llamada anterior
     135@container_id = '56143d89-1029-4ae4-b023-ca4367a8f34d'
     136@uri = URI.parse 'https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/%s' % @container_id
     137@req = Net::HTTP::Get.new @uri.path
     138@req['Authorization'] = 'Basic YWRtaW46YWRtaW4='
     139@res = @http.request(@req)
     140@json_resp = @res.body
     141puts @json_resp
     142
    94143}}}
    95144