Developers

PKI or Public Key Infrastructure is the defined framework of encryption and cybersecurity that secures interchanges between the server and the customer. PKI features a symmetric key methodology - a private key and a public key. Only the proprietor of the DSC can access thepersonal key and they have the liberty to select where and to whom the general public key goes.

This document is intended for portals/developers/ websites to integrate the API into their web applications and desktop application.

This helps the user in making their entire signing work easy and secure.

The specification can always change at the last minute. This is intended for selected people and is confidential.

Request Command<Command> <ts> <txn> <certificate> <File> <Pdf> <Data>
<ts>

This is Time Stamping element, which the server would pass to the signing Tool. (This is an Optional Element) The Signing tool would compare with the client system Date and Time and see the difference, if there is a difference for 30 seconds from Server Date and Time it would not Sign.

<txn>

A unique ID could be passed with each signing request, it would help the web application to get responsive and map it to the correct request. (this is an Optional Element)

<certificate>

The application could also pass to a prompt signing tool to match for a certificate present in Browser Store and operations could be performed. (This is an Optional Element)

  • if there is more than One Signature matching the criteria, then a Box showing all the matching signatures would be shown, and the user could select signature
  • If only One Signature is found, then our application would only show the pop-up for Password and it would automatically sign.
  • If no Parameters are sent then all allowed certificates would be shown.
<File>

Type= The Type of Data which needs to be Used by the Commands (This is a Mandatory Element) Allowed variables PDF, TXT, or XML

inputFile =Unsigned file path (full), which needs to be signed (This is Optional if you passing <data> element)

outputFile =Signed file copied here (optional)

<Page>

Only Numeric, Zero is not allowed

<cood>

Only Numeric allowed, two numeric values allowed, it would try to sign the pixels mentioned (depending on the resolutions of the file saved), else it would generate an error. Please separate the value by a comma, the first figure is horizontal and the next figure is vertical on the page (eg.79,100)

<size>

Only Numeric allowed, two numeric values allowed, and it would print the signature in the box mentioned here. Please separate the value by a comma the first figure is horizontal and the next figure is vertical on the page (eg.79,100)

<Invisiablesign>

For invisible signature. Allowed values are "yes" and "No"

<enableltv>

To enable the LTV. Allowed values are "yes" and "No"

<enabletimestamp>

To enable the embedded timestamp. Allowed values are "yes" and "No"

<data>

The actual data is encoded in Base64 format. (This is a Mandatory Element)

<attribute name="Cn"> John </attribute >
<attribute name="O">John & Company </attribute>
<attribute name="OU"> Management </attribute>
<attribute name="T">CEO </attribute>
<attribute name="E">SomeEmail@domain.com </attribute>
<attribute name="SN"> A123 </attribute>
<attribute name="CA"> Capricorn CA </attribute>
<attribute name="TC"> SG </attribute>
<attribute name="AP"> Application Id </attribute>
<attribute name="VD"> Application Validity Date </attribute>
CN =ubject Name
O = Organization Name
Ou =Organization Unit
T =Title E =email
SN =Serial Number
CA =Certifying Authority
TC =Type of certificate allowed variables
SG (Signing)
EN (Encryption)
AP =Apllication Id (This is intended for application developers)
VD =Application Validity Date

This Element is used when <File> element is PDF (This is an Optional Element)

  • This Element is used when we would want to sign the PDF file on a particular page and in a particular place.
  • In case no values are passed, the signing would happen in the file invisible form (No Physical footprint would leave in the file).
  • If the values are passed with <file> not equal to PDF the values present would not affect the signing Process.
  • This element is used for PDF file Signing only.

This is the actual command to help you perform operations using our applications

S.NO.COMMANDDESCRIPTION
01pkiNetworkSignThis command is used to Sign, XML, TEXT, and PDF, data has to be passed in Base64.
02pkiNetworkSignHashThis Command is used to sign Hash instead of sending the Base64 File
03pkiNetworkVerSignThis command is used to Verify Signature.
you could pass any existing document (Text, Pdf, XML), with attributes and it would verify the signature
04pkiNetworkEncThis command is used for Encryption of Data.
05pkiNetworkDeEncThis command is used for De Encryption of data.
06pkiNetworkCertExt

This command is used to extract details of the certificate.

The response would be details of the certificate in XML format, No attributes can be passed

07pkiNetworkCertAuth

This command is used to validate data and certificate details

Response would be Valid/ Not Valid, and you could pass all attributes.

08pkiNetworkFileEnc

This command is used to encrypt files from the client machine, when the command is initiated it would open a File browser window, a file would be selected, and the same file would be converted into Base64, and encrypted.

09pkiNetworkFileEncSign

This command is used to encrypt files from the client machine, when the command is initiated it would open a File Browser window, a file would be selected, the same file would be converted into Base64, and encrypted, then the same data would be signed with the selected DSC.

10pkiNetworkEncSign

This command is used to encrypt the block of the Text file and then the same data would be signed with the selected DSC.

11pkiNetworkEncExt

This command is used to extract the P7B file of the encryption certificate and the same would be converted into Base64 and sent back as a response.

12pkiNetworkFileSign

This command is used to Sign files from the client machine, when the command is initiated it would open a File Browser window, a file would be selected, and the same file would be converted into Base64, and encrypted.

To make it easy for the developers to understand the whole procedure of using PKI, we have generated a sample structure here.

<request>
<command> pkiNetworkSign </command><ts> 2017-03-22T 12:23:11.3820412+05:30 </ts><txn> unique id </txn>
<certificate>
<attribute name="Cn"> John </attribute >
<attribute name="O">John & Company </attribute>
<attribute name="OU"> Management </attribute>
<attribute name="T">CEO </attribute>
<attribute name="E">SomeEmail@domain.com </attribute>
<attribute name="SN"> A123 </attribute>
<attribute name="CA"> Capricorn CA </attribute>
<attribute name="TC"> SG </attribute>
<attribute name="AP"> Application Id </attribute>
<attribute name="VD"> Application Validity Date </attribute>
</certificate>
<file>
<attribute name="type"> xml/pdf/text </attribute >
</file>
<pdf>
<page> </page>
<cood> 78,56 </cood>
<size"> </size>
</pdf>
<data>

base64 encoded

</data>
</request>
<response>
<command> pkiNetworkSign </command>
<ts> 2017-03-22T 12:23:11.3820412+05:30 </ts>
<txn"> unique id </txn>
<status> ok </status>
<data> base64 encoded </data>
<Requrl> base64 encoded </Requrl>
</response>

OR

<response>
<command> pkiNetworkSign </command>
<ts> 2017-03-22T 12:23:11.3820412+05:30 </ts>
<txn"> unique id </txn>
<status> failed </status>
<error code=""> base64 encoded </error>
</response>