Perform

SIGNING EASILY
& SAFELY

This document is inteded for portal / developers/ websites to integrate the API into their web application and desktop application. This helps the user in making their entire signing work easy and secure.

The specification can always change at 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 Optional Element) The Signing tool would compare with the client system Date and Time and see the difference , if there is diffrence 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 web application to get the responsive and map it to correct rquest .(this is Optional Element)

<Certificate>

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

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

<File>

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

inputFile =Unsigned file path (full), which need 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 alowed, two numeric value allowed, it would try to sign the pixels mentioned (depending on the resolutions of the file saved),else it would generate an error. Please seprate 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 value allowed, and it would print the signature in the 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 value are "yes" and "No"

<enableltv>

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

<enabletimestamp>

To enable the embeded timestamp. Allowed value are "yes" and "No"

<data>

The actual data which is encoded in Base64 format.(This is 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" > Appliction 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 Optional Element)

  • This Element is used whn we would want to sign the PDF file in particular page and in Particular place.
  • In case no values are passed, the signing would happen in the file invisible form (No Physical footprint would left in file).
  • If the values are passed with <file> not equal to PDF the values present would not be affect the signing Process.
  • This element is used for PDF file Signing only.
The attributes available are:-

<page> 1 </page>

<cood> 10,10 </cood>

<size> 200,200 <size>

<invisiablesign> yes <invisiablesign>

<enableltv> yes <enableltv>

<enabletimestamp> yes <enabletimestamp>

<location> New Delhi <Location>

<reason> Tax Invoice <reason>

<dateformt> dd-MMM-yyyy hh:mm tt <dateformt>

<customtext > Your custom text here <customtext >

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

S.NO. COMMAND DESCRIPTION
01 pkiNetworkSign This command is used to Sign,XML,TEXT,PDF,data has to be passed in Base64.
02 pkiNetworkSignHash This Command is used to sign Hash instead of sending the Base64 File
03 pkiNetworkVerSign

This command is used to Verify Signature.

you could pass any existing document (Text,Pdf,XML), with attributes and it would verify signature

04 pkiNetworkEnc This command is used for Encryption of Data.
05 pkiNetworkDeEnc This command is used for De Encryption of data.
06 pkiNetworkCertExt

This command is used to extract details of the certificate.

Response would be details of certificate in XML format, No attributes can be passed

07 pkiNetworkCertAuth

This command is used to validate data and certificate details

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

08 pkiNetworkFileEnc This command is used to encrypt file 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.
09 pkiNetworkFileEncSign This command is used to encrypt file from the client machine, when the command is intiated it would open a File Browser window, a file would be selected, the same file would be converted into Base64, and ncrypted, then the same data would be signed with the selected DSC.
10 pkiNetworkEncSign This command is used to encrypt block of Text file and then the same data would be signed with the selected DSC.
11 pkiNetworkEncExt 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 response.
12 pkiNetworkFileSign This command is used to Sign file from the client machine, when the command is intiated it would open a File Browser window, a file would be selected, 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"> </attribute>

<attribute name="O"> </attribute>

<attribute name="OU"> </attribute>

<attribute name="T"> </attribute>

<attribute name="E"> </attribute>

<attribute name="SN"> </attribute>

<attribute name="CA"> </attribute>

<attribute name="TC"> </attribute>

<attribute name="AP"> </attribute>

<attribute name="VD"> </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>

{
"request": {
"command": "pkiNetworkSign",
"ts": "",
"txn": "2D58AD9",
"certificate": {
"attribute": [
"AP=1",
"CN=Mr KK",
"SN=512BA2",
"TC=SG"
]
},
"file": {
"attribute": [
"type=pdf"
]
},
"pdf": {
"page": 1,
"cood": "10,10",
"size": "200,200",
"invisiablesign": "yes",
"enableltv": "yes",
"enabletimestamp": "yes",
"location": "New Delhi",
"reason": "Tax Invoice",
"dateformat": "dd-MMM-yyyy hh:mm tt",
"customtext": "Your custome text here"
},
"data": "MTIzMTMxMjMx...."
}
}