Online Store
مارس 12

مدقق الشهادات الرقمية – واجهة برمجة تطبيقات خدمات الويب RESTful

مدقق الشهادات الرقمية ، واجهة برمجة تطبيقات خدمات الويب RESTful

[EN] دليل
 
المستخدم "X.509 verifier" هي خدمة ويب RESTful يمكن أن تعمل على التحقق من صحة شهادات X.509 وملفات PDF الموقعة وكذلك للتحقق من امتثال محتويات الشهادات لتشريعات جمهورية صربيا.
تتكون خدمة ويب RESTful "X.509 verifier" من 2 واجهات برمجة تطبيقات REST الموجودة على المضيف
: http://signatureverifier.d-logic.com
ومسارات البرامج النصية هي:

  1. / x509-المدقق.php
  2. /pdf-sgn-verifier.php

 

REST API: x509-verifier

إصدار API: 1.0

يتم إرسال ملف PEM ، الذي يجب أن تكون محتوياته شهادة X.509 للإصدار 3 ، إلى واجهة برمجة التطبيقات هذه. بعد التحقق من الشهادة، ترجع واجهة برمجة التطبيقات نتيجة التحقق في سلسلة JSON المشفرة.

طلب خادم HTTP

المضيف + المسار: http://signatureverifier.d-logic.com/x509-verifier.php
الطريقة: POST
الرؤوس (إلزامية):
نوع المحتوى: متعدد الأجزاء / بيانات النموذج ؛ الحدود = RANDOM_STRING_BOUNDARY الجسم: –-RANDOM_STRING_BOUNDARY
ترتيب المحتوى: بيانات النموذج ؛ الاسم = "ملف" ؛ اسم الملف = "file_name.pem"
نوع المحتوى
:

التطبيق / تدفق

ثماني بتات [FILE_BINARY_DATA]
– RANDOM_STRING_BOUNDARY
ترتيب المحتوى: نموذج-بيانات؛ name="query"

[JSON_ENCODED_PARAMETERS]
-RANDOM_STRING_BOUNDARY–
{END}
       

وصف طلب خادم HTTP

RANDOM_STRING_BOUNDARY عبارة عن سلسلة تحتاج إلى قيمة مختلفة ، وإذا أمكن ، قيمة فريدة في كل طلب جديد. على سبيل المثال ، في JavaScript ، ستكون الممارسة الجيدة للحصول على RANDOM_STRING_BOUNDARY:

حدود var = Math.random () .toString () .substr (2) ؛

 
[FILE_BINARY_DATA] هو محتوى ثنائي لملف "file_name.pem" المختار.
 
[JSON_ENCODED_PARAMETERS] هي معلمات JSON مشفرة يجب أن تفي بالتنسيق التالي:

{
"العملية": "تحقق" ،
"user_id": 123 ،
"security_token": ""
}

والممارسة الجيدة هي أن هذه السلسلة المشفرة JSON لا تحتوي على أحرف مسافات بيضاء ، أي يتم تشكيلها ، في JavaScript ، على سبيل المثال ، باستخدام الكود التالي:

فار بارامز ، جسون ؛
params = { العملية: "تحقق" ، user_id: 123 ، security_token: "" } ؛
json = JSON.stringify (معلمات) ؛

 
المعلمات
هي: "عملية": "تحقق" – عملية "تحقق" هي العملية الوحيدة المدعومة حاليا.
"user_id": 123 المعلمة الرقمية ، نوع العدد الصحيح ، تمثل رقم تعريف المستخدم (لا يتم استخدامه في الإصدار 1.0 من API ولكنه إلزامي ومحجوز للاستخدام في المستقبل). في API الإصدار 1.0 يمكن أن يكون 0.
"security_token": " – سلسلة يجب أن تحتوي على أزواج من الأرقام السداسية العشرية بدون ما يسمى المحدد (لا يتم استخدامه في الإصدار 1.0 من API ولكنه إلزامي ومحجوز للاستخدام في المستقبل). في API الإصدار 1.0 يمكن أن يكون سلسلة فارغة.
على أي حال ، في JavaScript ، ليس من الضروري إدارة المحتوى مباشرة ، أي نص HTTP. نوصي باستخدام فئة FormData كمثال يمكنك تنزيله من مستودع git على عنوان URL التالي: /code/NFC-RFID-reader-SDK
/signature_verifier_jc_example.git هناك أيضا أمثلة على كيفية استخدام دعم cURL من PHP لإرسال الطلبات إلى واجهات برمجة تطبيقات REST هذه:

/code/digital_signature_sdk/php_example.git

 

استجابة خادم HTTP

بعد التحقق من شهادة X.509 ، سيعيد الخادم سلسلة JSON المشفرة التي تحتوي (في الإصدار 1.0 من واجهة برمجة التطبيقات) على وسيطتين:

{"الحالة":"STATUS_STRING","رسالة":"MESSAGE_STRING"}

 
في الطلب غير الصالح ، ستكون استجابة الخادم:

HTTP/1.1 200 موافق
نوع المحتوى: تطبيق / json

 

{"الحالة":"خطأ: معلمات POST خاطئة.","msg":""}

 
إذا نجحت عملية التحقق، يجب أن تكون STATUS_STRING:

"حسنا"

 
بينما سيحتوي MESSAGE_STRING على سجل منسق بشكل صحيح ، والذي يحتوي على علامات تنسيق HTML ، بالإضافة إلى علامات HTML لسطر جديد ، لذلك يمكن وضع هذه الرسالة مباشرة في أي حاوية HTML (على سبيل المثال <div>).
 
يتم احتساب أي استجابة تختلف STATUS_STRING عن "موافق" على أنها تحقق تكون نتيجته غير ناجحة ، وفي هذه الحالة ، إذا كان STATUS_STRING مختلفا عن "خطأ: معلمات POST خاطئة." ، سيحتوي MESSAGE_STRING على تفاصيل تدقيق الشهادة التي يجب عرضها.

 

REST API: pdf-sgn-verifier

إصدار API: 1.0

يتم إرسال ملف PDF ، الذي يجب أن تكون محتوياته وثيقة PDF موقعة ، إلى واجهة برمجة التطبيقات هذه. يمكن أن تكون تنسيقات التوقيع "PKCS # 7 – منفصلة" أو "مكافئة ل CAdES". بعد التحقق من الملف الموقع ، ترجع واجهة برمجة التطبيقات نتيجة التحقق في سلسلة JSON المشفرة.

طلب خادم HTTP

المضيف + المسار: http://signatureverifier.d-logic.com/pdf-sgn-verifier.php
الطريقة: POST
الرؤوس (إلزامية):
نوع المحتوى: متعدد الأجزاء / بيانات النموذج ؛ الحدود = RANDOM_STRING_BOUNDARY الجسم
: –RANDOM_STRING_BOUNDARY ترتيب المحتوى: بيانات النموذج ؛ الاسم = "ملف" ؛ اسم الملف = "file_name.pdf"
نوع المحتوى:

تطبيق / pdf

[FILE_BINARY_DATA]

RANDOM_ STRING_BOUNDARY
ترتيب المحتوى: بيانات النموذج ؛ الاسم = "الاستعلام"

[JSON_ENCODED_PARAMETERS]
–RANDOM_STRING_BOUNDARY–
{END}      

 

وصف طلب خادم HTTP

RANDOM_STRING_BOUNDARY عبارة عن سلسلة تحتاج إلى قيمة مختلفة ، وإذا أمكن ، قيمة فريدة في كل طلب جديد. على سبيل المثال ، في JavaScript ، ستكون الممارسة الجيدة للحصول على RANDOM_STRING_BOUNDARY:

حدود var = Math.random () .toString () .substr (2) ؛

 
[FILE_BINARY_DATA] هو محتوى ثنائي لملف "file_name.pdf" المختار.
 
[JSON_ENCODED_PARAMETERS] هي معلمات JSON مشفرة يجب أن تفي بالتنسيق التالي:

{
"العملية": "تحقق" ،
"user_id": 123 ،
"security_token": ""
}

والممارسة الجيدة هي أن هذه السلسلة المشفرة JSON لا تحتوي على أحرف مسافات بيضاء ، أي يتم تشكيلها ، في JavaScript ، على سبيل المثال ، باستخدام الكود التالي:

فار بارامز ، جسون ؛
params = { العملية: "تحقق" ، user_id: 123 ، security_token: "" } ؛
json = JSON.stringify (معلمات) ؛

 
المعلمات
هي: "عملية": "تحقق" – عملية "تحقق" هي العملية الوحيدة المدعومة حاليا.
"user_id": 123 المعلمة الرقمية ، نوع العدد الصحيح ، تمثل رقم تعريف المستخدم (لا يتم استخدامه في الإصدار 1.0 من API ولكنه إلزامي ومحجوز للاستخدام في المستقبل). في API الإصدار 1.0 يمكن أن يكون 0.
"security_token": " – سلسلة يجب أن تحتوي على أزواج من الأرقام السداسية العشرية بدون ما يسمى المحدد (لا يتم استخدامه في الإصدار 1.0 من API ولكنه إلزامي ومحجوز للاستخدام في المستقبل). في API الإصدار 1.0 يمكن أن يكون سلسلة فارغة.
على أي حال ، في JavaScript ، ليس من الضروري إدارة المحتوى مباشرة ، أي نص HTTP. نوصي باستخدام فئة FormData كمثال يمكنك تنزيله من مستودع git على عنوان URL التالي: /code/NFC-RFID-reader-SDK
/signature_verifier_jc_example.git هناك أيضا أمثلة على كيفية استخدام دعم cURL من PHP لإرسال الطلبات إلى واجهات برمجة تطبيقات REST هذه:

/code/digital_signature_sdk/php_example.git

 

استجابة خادم HTTP

بعد التحقق من ملف PDF ويحتوي على توقيع ، سيعيد الخادم سلسلة JSON المشفرة التي (في إصدار API 1.0) تحتوي على وسيطتين 2:

{"الحالة":"STATUS_STRING","رسالة":"MESSAGE_STRING"}

 
في الطلب غير الصالح ، ستكون استجابة الخادم:

HTTP/1.1 200 موافق
نوع المحتوى: تطبيق / json

 

{"الحالة":"خطأ: معلمات POST خاطئة.","msg":""}

 
إذا نجحت عملية التحقق، يجب أن تكون STATUS_STRING:

"توقيع PDF صالح"

 
بينما سيحتوي MESSAGE_STRING على سجل منسق بشكل صحيح ، والذي يحتوي على علامات تنسيق HTML ، بالإضافة إلى علامات HTML لسطر جديد ، لذلك يمكن وضع هذه الرسالة مباشرة في أي حاوية HTML (على سبيل المثال <div>).
 
على عكس واجهة برمجة تطبيقات x509-verifier ، لدينا هنا ردود STATUS_STRING مختلفة عن "توقيع PDF صالح" ، والتي تم احتسابها كنتيجة تحقق غير ناجحة ولكن في هذه الحالات ، لا تحتوي MESSAGE_STRING على تفاصيل. هذه هي الحالات عندما:

STATUS_STRING = "خطأ: تم تغيير PDF بعد التوقيع!"
STATUS_STRING = "خطأ: تنسيق PDF خاطئ (أثناء البحث عن بيانات التوقيع)"
STATUS_STRING = "معلومات: ملف PDF لا يحتوي على توقيع رقمي"
STATUS_STRING = "خطأ: تنسيق PKCS # 7 خاطئ (بيانات مفقودة" ليتم توقيعها ")"

 
القضية عندما تكون كذلك

STATUS_STRING = "فشل التحقق من صحة التوقيع الرقمي"

بمعنى أن هذا هو التحقق من ملف PDF ويحتوي على توقيع مكتمل بالكامل ولكن النتيجة غير ناجحة. في هذه الحالة ، تحتوي MESSAGE_STRING دائما على تفاصيل التدقيق التي يجب عرضها. في هذه الحالة ، سيحتوي MESSAGE_STRING على سجل منسق بشكل صحيح ، والذي يحتوي على علامات تنسيق HTML ، بالإضافة إلى علامات HTML لسطر جديد ، بحيث يمكن وضع هذه الرسالة مباشرة في أي حاوية HTML (على سبيل المثال <div>).

الملحق: "عميل Restlet" – إضافة متصفح Google Chrome الملفات المصدرة:

يتضمن الجزء المصاحب من هذا الدليل أيضا ملفات JSON التي تحتوي على ملفات تعريف لامتداد "Google Chrome" "Restlet Client". هذه الملفات هي x509-verifier.json و pdf-sgn-verifier.json وتحتوي على ملفات تعريف لواجهات برمجة تطبيقات REST x509-verifier و pdf-sgn-verifier على التوالي. يمكن استخدامها بعد تثبيت ملحقات "عميل Restlet" "Google Chrome".
 
يحتوي "Restlet Client" على خطأ معروف يتجلى دائما ، عند تحميل ملف التعريف ، قم بتغيير نوع معلمة نموذج الجسم من "ملف" إلى "نص". الحل البديل هو تبديل النوع الذي تم تغييره مرة أخرى إلى "ملف" ثم اختيار الملف المطلوب.

برنامج SDK

[/vc_bb_pscytext] [/vc_عمود]