Online Store
Mar 12

Dijital Sertifika Doğrulayıcı – RESTful Web Hizmetleri API'si

Dijital Sertifika doğrulayıcı, RESTful Web hizmetleri API'si

[EN] Kullanım Kılavuzu
 
" X.509 doğrulayıcı", X.509 sertifikalarını ve imzalı PDF dosyalarını doğrulamanın yanı sıra sertifikaların içeriğinin Sırbistan Cumhuriyeti yasama organına uygunluğunu kontrol etmeye yarayan bir RESTful Web hizmetidir.
"X.509 doğrulayıcı" RESTful Web hizmeti, ana bilgisayarda bulunan 2 REST API'sinden oluşur
: http://signatureverifier.d-logic.com
ve komut dosyalarının yolları şunlardır:

  1. /x509-doğrulayıcı.php
  2. /pdf-sgn-doğrulayıcı.php

 

REST API: x509-doğrulayıcı

API sürümü: 1.0

İçeriği sürüm 3'ün X.509 sertifikası olması gereken PEM dosyası bu API'ye gönderilir. Sertifikayı kontrol ettikten sonra API, JSON kodlu dizedeki doğrulamanın sonucunu döndürür.

HTTP sunucusu isteği

Ana Bilgisayar + Yol: http://signatureverifier.d-logic.com/x509-verifier.php
Yöntemi: POST
Üstbilgileri (zorunlu):
İçerik Türü: çok parçalı/form-veri; sınır
=RANDOM_STRING_BOUNDARY Gövde: —RANDOM_STRING_BOUNDARY
İçerik-Düzenleme: form-data; name="dosya"; dosyaadı="file_name.pem"
İçerik Türü
:

uygulama/sekizli-akış
[FILE_BINARY_DATA]
– RANDOM_STRING_BOUNDARY
Content-Disposition: form-data; name="query"

[JSON_ENCODED_PARAMETERS]
RANDOM_STRING_BOUNDARY–
{END}
       

HTTP sunucusu isteğinin açıklaması

RANDOM_STRING_BOUNDARY , her yeni istekte farklı ve mümkünse benzersiz bir değere sahip olması gereken bir dizedir. Örneğin, JavaScript'te, RANDOM_STRING_BOUNDARY edinmek için iyi bir uygulama şöyle olabilir:

var sınırı = Math.random().toString().substr(2);

 
[FILE_BINARY_DATA], seçilen 'file_name.pem' dosyasının ikili içeriğidir.
 
[JSON_ENCODED_PARAMETERS], aşağıdaki biçimi yerine getirmesi gereken JSON kodlu parametrelerdir:

{
"işlem": "doğrulamak",
"user_id": 123
"security_token": ""
}

ve iyi uygulama, bu JSON kodlu dizenin boşluk karakterleri içermemesidir, yani JavaScript'te, örneğin aşağıdaki kodu kullanarak oluşturulmalıdır:

var params, json;
params= { işlem: "doğrulamak", user_id: 123, security_token: "" };
json = JSON.stringify(params);

 
Parametreler şunlardır
: "işlem": "doğrula" – "Doğrula" işlemi şu anda desteklenen tek işlemdir.
"user_id": 123 sayısal parametre, tamsayı türü, kullanıcı kimlik numarasını temsil eder (API sürüm 1.0'da kullanılmaz, ancak zorunludur ve gelecekteki kullanım için ayrılmıştır). API sürümünde 1.0 0 olabilir.
"security_token": " – sözde sınırlayıcı olmadan onaltılık basamak çiftlerini içermesi gereken dize (API sürüm 1.0'da kullanılmaz, ancak zorunludur ve gelecekteki kullanım için ayrılmıştır). API sürüm 1.0'da boş bir dize olabilir.
Her neyse, JavaScript'te, İçeriği, yani HTTP gövdesini doğrudan yönetmek gerekli değildir. FormData sınıfını, aşağıdaki URL'deki git deposundan indirebileceğiniz bir örnek olarak kullanmanızı öneririz: /code/NFC-RFID-reader-SDK/signature_verifier_jc_example.git
Bu REST API'lere istek göndermek için PHP'den cURL desteğinin nasıl kullanılacağına dair örnekler de vardır:

/code/digital_signature_sdk/php_example.git

 

HTTP Sunucusu Yanıtı

X.509 sertifika doğrulamasından sonra, sunucu (API sürüm 1.0'da) 2 bağımsız değişken içeren JSON kodlu dizeyi döndürür:

{"status":"STATUS_STRING","msg":"MESSAGE_STRING"}

 
Geçersiz istek üzerine, sunucu yanıtı şöyle olacaktır:

HTTP/1.1 200 Tamam
İçerik Türü: application/json

 

{"status":"Error: wrong POST parameters.","msg":""}

 
Doğrulama başarılı olursa, STATUS_STRING şunlar olmalıdır:

"Tamam"

 
MESSAGE_STRING, HTML biçimlendirme etiketlerinin yanı sıra yeni bir satır için HTML etiketleri içeren geçerli olarak biçimlendirilmiş bir kayıt içerecektir, böylece bu mesaj doğrudan herhangi bir HTML kabına yerleştirilebilir (örneğin, <div>).
 
STATUS_STRING "Tamam"dan farklı olan herhangi bir yanıt, sonucu başarısız olan ve bu durumda, STATUS_STRING "Hata: yanlış POST parametreleri" nden farklı olan bir kontrol olarak sayılır. MESSAGE_STRING, görüntülenmesi gereken sertifika incelemesinin ayrıntılarını içerecektir.

 

REST API: pdf-sgn-verifier

API sürümü: 1.0

İçeriği imzalanmış PDF belgesi olması gereken PDF dosyası bu API'ye gönderilir. İmza biçimleri "PKCS#7 – Ayrılmış" veya "CAdES Eşdeğeri" olabilir. İmzalı dosyayı kontrol ettikten sonra API, JSON kodlu dizedeki doğrulamanın sonucunu döndürür.

HTTP sunucusu isteği

Ana Bilgisayar + Yol: http://signatureverifier.d-logic.com/pdf-sgn-verifier.php
Yöntemi: POST
Üstbilgileri (zorunlu):
İçerik Türü: çok parçalı/form-veri; sınır=RANDOM_STRING_BOUNDARY Gövde: —RANDOM_STRING_BOUNDARY
İçerik-Düzenleme: form-veri; name="dosya"; dosyaadı="file_name.pdf"
İçerik Türü
:

uygulama/pdf

[FILE_BINARY_DATA]
-RANDOM_ STRING_BOUNDARY
Content-Disposition: form-data; name="query"

[JSON_ENCODED_PARAMETERS]
RANDOM_STRING_BOUNDARY–
{END}      

 

HTTP sunucusu isteğinin açıklaması

RANDOM_STRING_BOUNDARY , her yeni istekte farklı ve mümkünse benzersiz bir değere sahip olması gereken bir dizedir. Örneğin, JavaScript'te, RANDOM_STRING_BOUNDARY edinmek için iyi bir uygulama şöyle olabilir:

var sınırı = Math.random().toString().substr(2);

 
[FILE_BINARY_DATA], seçilen 'file_name.pdf' dosyasının ikili içeriğidir.
 
[JSON_ENCODED_PARAMETERS], aşağıdaki biçimi yerine getirmesi gereken JSON kodlu parametrelerdir:

{
"işlem": "doğrulamak",
"user_id": 123
"security_token": ""
}

ve iyi uygulama, bu JSON kodlu dizenin boşluk karakterleri içermemesidir, yani JavaScript'te, örneğin aşağıdaki kodu kullanarak oluşturulmalıdır:

var params, json;
params= { işlem: "doğrulamak", user_id: 123, security_token: "" };
json = JSON.stringify(params);

 
Parametreler şunlardır
: "işlem": "doğrula" – "Doğrula" işlemi şu anda desteklenen tek işlemdir.
"user_id": 123 sayısal parametre, tamsayı türü, kullanıcı kimlik numarasını temsil eder (API sürüm 1.0'da kullanılmaz, ancak zorunludur ve gelecekteki kullanım için ayrılmıştır). API sürümünde 1.0 0 olabilir.
"security_token": " – sınırlayıcı olmadan onaltılık basamak çiftlerini içermesi gereken dize (API sürüm 1.0'da kullanılmaz, ancak zorunludur ve gelecekteki kullanım için ayrılmıştır). API sürüm 1.0'da boş bir dize olabilir.
Her neyse, JavaScript'te, İçeriği, yani HTTP gövdesini doğrudan yönetmek gerekli değildir. FormData sınıfını, aşağıdaki URL'deki git deposundan indirebileceğiniz bir örnek olarak kullanmanızı öneririz: /code/NFC-RFID-reader-SDK/signature_verifier_jc_example.git
Bu REST API'lere istek göndermek için PHP'den cURL desteğinin nasıl kullanılacağına dair örnekler de vardır:

/code/digital_signature_sdk/php_example.git

 

HTTP Sunucusu Yanıtı

PDF dosyasının doğrulanmasından ve imza içermesinden sonra, sunucu (API sürüm 1.0'da) 2 bağımsız değişken içeren JSON kodlu dizeyi döndürür:

{"status":"STATUS_STRING","msg":"MESSAGE_STRING"}

 
Geçersiz istek üzerine, sunucu yanıtı şöyle olacaktır:

HTTP/1.1 200 Tamam
İçerik Türü: application/json

 

{"status":"Error: wrong POST parameters.","msg":""}

 
Doğrulama başarılı olursa, STATUS_STRING şunlar olmalıdır:

"PDF İmzası GEÇERLİ"

 
MESSAGE_STRING, HTML biçimlendirme etiketlerinin yanı sıra yeni bir satır için HTML etiketleri içeren geçerli olarak biçimlendirilmiş bir kayıt içerecektir, böylece bu mesaj doğrudan herhangi bir HTML kabına yerleştirilebilir (örneğin, <div>).
 
x509-doğrulayıcı API'nin aksine, burada başarısız bir doğrulama sonucu olarak sayılan ancak bu durumlarda STATUS_STRING ayrıntıları içermeyen "PDF İmzası GEÇERLİDİR" den farklı MESSAGE_STRING sahip yanıtlarımız var . Aşağıdaki durumlar şunlardır:

STATUS_STRING = "Hata: PDF imzalandıktan sonra değiştirildi!"
STATUS_STRING = "Hata: Yanlış PDF biçimi (imza verilerini ararken)"
STATUS_STRING = "Bilgi: PDF dosyası dijital imza içermiyor"
STATUS_STRING = "Hata: Yanlış PKCS#7 biçimi ("imzalanacak" verileri eksik)"

 
Durum böyle olduğunda

STATUS_STRING = "Dijital imza doğrulaması BAŞARISIZ"

yani bu, PDF dosyasının doğrulanmasıdır ve imzanın tamamen tamamlanmış ancak sonucun başarısız olduğu anlamına gelir. Bu durumda, MESSAGE_STRING her zaman görüntülenmesi gereken incelemenin ayrıntılarını içerir. Bu durumda, MESSAGE_STRING, HTML biçimlendirme etiketlerinin yanı sıra yeni bir satır için HTML etiketleri içeren geçerli biçimde biçimlendirilmiş bir kayıt içerecektir, böylece bu ileti doğrudan herhangi bir HTML kabına yerleştirilebilir (örneğin, <div>).

Ek: "Restlet İstemcisi" – Google Chrome tarayıcı uzantısı dışa aktarılan dosyalar:

Bu kılavuzun eşlik eden kısmı, "Google Chrome" uzantısı "Restlet Client" için profiller içeren JSON dosyalarını da içerir. Bu dosyalar x509-verifier.json ve pdf-sgn-verifier.json'dur ve sırasıyla x509-verifier ve pdf-sgn-verifier REST API'leri için profiller içerir. "Restlet istemcisi" "Google Chrome" uzantılarını yükledikten sonra kullanılabilirler.
 
"Restlet İstemcisi", profil yüklemede her zaman gövde formu parametre türünü "Dosya" dan "Metin" e değiştirerek kendini gösteren bilinen bir hataya sahiptir. Geçici çözüm, değiştirilen türü tekrar "Dosya" olarak değiştirmek ve ardından istenen dosyayı seçmektir.