Skip to content

Latest commit

 

History

History
90 lines (72 loc) · 2.13 KB

File metadata and controls

90 lines (72 loc) · 2.13 KB

5.3 Prepare Document to be Signed

Use cases

Prepares the given document in order to be signed from user with his private signing key linked to the public one inside the certificate.

Dart

  • Plugin http
  • Plugin http_parser

Kotlin

  • Library OkHttp

Background

From Wikipedia:

In mathematics and computing, hexadecimal (also base 16, or hex) is a positional system that represents numbers using a base of 16.

Step by step sequence

  1. Get the certificate;
  2. Get the document;
  3. Build the request;
  4. Finally, send the request.

Code Examples

Here's an example of the implemetation in all the available languages.

Dart

var certificate = File('/pems/certificate.pem');
var document = File('/xmls/document.xml');
var uri = Uri.parse(
    'https://api.commercio.network/sign');
var request = new http.MultipartRequest('POST', uri);
request.files.add(
  await http.MultipartFile.fromPath(
    'certificate',
    certificate.path,
    contentType: new MediaType('application', 'x-tar'),
  ),
);
request.files.add(
  await http.MultipartFile.fromPath(
    'document',
    document.path,
    contentType: new MediaType('application', 'x-tar'),
  ),
);
http.StreamedResponse response = await request.send();

Kotlin

val requestBody: RequestBody = MultipartBody.Builder().setType(MultipartBody.FORM)
  .addFormDataPart(
      "certificate", "certificate.pem",
      File("/pems/certificate.pem")
          .asRequestBody("application/octet-stream".toMediaTypeOrNull())
  )
  .addFormDataPart(
      "document", "document.xml",
      File("/xmls/document.xml")
          .asRequestBody("application/octet-stream".toMediaTypeOrNull())
  )
  .build()

val okHttpClient = OkHttpClient()
val request = Request.Builder()
  .method("POST", requestBody)
  .url("https://api.commercio.network/sign")
  .build()
okHttpClient.newCall(request).enqueue(object : Callback {
  override fun onFailure(call: Call, e: IOException) {
      // Handle this
  }

  override fun onResponse(call: Call, response: Response) {
      if (!response.isSuccessful) {
          // Handle the error
      }
      // Upload successful
  }
})