Test App to validate NPNT implementation


No issues from my side.


Any thoughts @charizard @sid?


We were trying to verify RFM generated flight log using NPNT test app.

  1. The NPNT test app was unable to verify the signature generated by RFM(C++ & OpenSSL), when we further checked it we found that the signature generated during signing process of same file was different by both the apps(NPNT Testing Tool and RFM). I have attached the screen shot of signature generated by both the tools, which is not matching.

  2. Later we found that their was a difference in signature because the python’s json reading function was adding extra space and replacing double apostrophe with single apostrophe.

  3. Other issue is as per DGCA guidelines and sample JSON format, FlightLog element should be a sub element of properties element.

  4. Also as per DGCA guidelines all data value should use STRING as data type, Python JSON reading library converts float values to integer(eg.: 25.0 to 25) and even EPOCH timestamp are 10 characters hence STRING make more sense here.

For testing we changed our code to make it work with NPNT testing tool but we would suggest to change the python code with above changes.

We would suggest if users are not able to verify their flight logs using NPNT test tool than they should generate signature of their JSON log and compare it with signature generated by NPNT testing tool.

Logs Generation, Signing & Bundling

@cks123, Thanks for the detailed information.

Thanks for reporting. I have patched the issue. It was a bug in string conversion that was assing for some and failing for others. Please test the tool and let me know if the issue persists.

properties is not a element of the flight log, it is a part of the schema. that is a common misinterpretation Please refer to json-schema.org.

Your Point 4 is not clear. Can you please provide references to the section where the guidelines refer to usage of string? As I can see, the schema clearly states the datatypes for several fields -
e.g. - p53 - specifies timestamp to be integer
- p54 - specifies latitude, longitude, and altitude to be float.


There is a test tool hosted on the Digital Sky’s home page. I do not fully understand how is that functioning? How would that take the geo-fence inputs?


There is also an update to the app in github source, for webhosting - is that functional yet? How to use this feature?


Thanks @nihal for the update. Highly appreciate your efforts.

  1. Yes, we are able to verify our Flight Log signature using the latest code from GitHub. There are no issues with string conversion now.
  2. Yes you are right properties is not an element, its just a part of schema. We have removed it from our logs.
  3. For Data type conversion, timestamp should be in string format was my suggestion. Rest we will again check and revert.


Dear All,
Dear Mr. Sidhant

We are facing issue in generating log files by drone in test case no. 6. So it would be very helpful if you can elaborate the stepwise process for the same


Dear All,

While Testing NPNT Test tool, we are getting valid_PA sign failed, kindly help me to get it out


Hi ankur, can you provide more details about the same?

If you’re facing issue with signing of the logs, have a look at the helper functions provided in the codebase. they should help.

Do reach out if you’re still facing issues


Hi Nihal,

kindly help me getting the valid_ PA, what and from we get the same.

thanks in advance


Hi Ankur
A completely valid PA would be signed by DGCA and will only be available through the actual Digital Sky platform when a drone is registered. That being said, for the Valid PA check, the NPNT Tool generates a permission artifact for which the signature in the PA does not validate against the certificate and the permission data within the PA. (Please correct me if I am wrong @nihal )

But since the tool does not specify which PAs among the bundle are invalid and why (that is the test) you can generate sample PAs from this tool: https://secure.idroneport.com/npnt-test-tool

You can use this tool to quickly verify the validity of the signature in the PA: https://tools.chilkat.io/xmlDsigVerify.cshtml

Note that the PA is signed using XMLDSig.


hi Abhiroop,
what valid PA mean?


Ideally, a completely valid PA would be signed by DGCA’s official certificate. Since the NPNT Test Tool signs the PA through a self-signed certificate, I would say it is not strictly valid (which is expected since this is supposed to be a test tool).


valid PA mean:
In PA(Permission Artefact) which is XML files , all blow is correct:

  1. geo
  2. time
  3. singnature.
<UAPermission lastUpdated="" permissionArtifactId="" pilotPinHash="GriTMRcUlUip3+Jqji7ACmjTQjSztkyyjTn3SbRKY9hQKlhuYf/F0+C9w0Yvbned+GepSWVAYnmVi2K6zZyR9xtAHHCimhGm2JpVeQfIu0fR0Zuely5MKJZUe4wid1O/8gaK/Gjqb4etMxjEz1xdbuZJjSNUkSPEy8T7U6A1pUeS46xvXKy+imO0Oy29MGIHmwWzWZLMRLUn82Z+jjL0R/S3JEdhldNNQaaPmmSiswvEsWhUx1YFD8q//YK0YfS9JhG1N/ZhdPG8wktivaGmYKIUDMYa+hwKp5Q+x4BoaS7pXoxhJjonGRzQUr55mrXX2o6Qr6pCJYp+IbMzAOnT3A==" ttl="" txnId=""><Permission><Owner operatorId=""><Pilot uaplNo="" validTo=""/></Owner><FlightDetails><UADetails uinNo="EDS001A"/><FlightPurpose frequency="" shortDesc="Provisional test"/><PayloadDetails payloadDetails="Not specified" payloadWeight="Not specified"/><FlightParameters flightEndTime="2019-06-24T12:07:37.083768+05:30" flightStartTime="2019-06-24T11:07:37.083768+05:30" frequenciesUsed=""><Coordinates><Coordinate latitude="12.960208" longitude="77.652363"/><Coordinate latitude="12.959226" longitude="77.671046"/><Coordinate latitude="12.945286" longitude="77.66895"/><Coordinate latitude="12.943594" longitude="77.651752"/><Coordinate latitude="12.960208" longitude="77.652363"/></Coordinates></FlightParameters></FlightDetails></Permission><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><DigestValue>oY8KNZ0bJVE3yPMASgcO2ZEqjgMal0f+PGRZVOSBNOI=</DigestValue></Reference></SignedInfo><SignatureValue>IBa8yPi9VnQtK1AAxGX0CQlPQXprzJ+VcOmZKzTwH0EbJkdrxV6m5eklRLfrdPyj1j02Mq/53+qMq/+Nh+0LLH/qDmX/V4ZBFsWY9s7/SoaUet59SmzA6uXG21eu+L6TcR7k/WaBEfKYF9O2852Qs4ItA8ZG71BvXAIGFO1KzF2c2IMrbQ+AmLJ2LmLDWD5DlS4guUjEcuMDZCOIvSzms2oZU3UIwASWx7BBW3Dt8tLIH/3FVDZjEKKXvrTRe67Ex4eTVH2XTOJ9tSFX1eDmtap3PP50b4UrFkl1h2gXOivqOKkqdbFmC26fW75ctmY91IiED1W3HOctT9sThAS7Jw==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIC8TCCAdmgAwIBAgIJAJRDnqfLydHvMA0GCSqGSIb3DQEBCwUAMA8xDTALBgNV

You can get it PA creation detail here. https://github.com/iSPIRT/NPNT-Provisional-testing-tool/blob/bc36fbb5ffaa61af61c221f17d5a30dd2fe25af7/permissions.py#L23,L30


Thanks All of You



Dear All,

we need a certification from CA (Certifying Authority), for drone registration, how can we get it


You can get a digital certificate from any authorized CA in India, ex: eMudhra. This certificate is similar to the one used for filing returns etc.
This article has more details: https://idronecenter.com/npnt-regulations-part-4-drone-registration-digital-sky-app-management-server-and-uin-application/


Dear Abhiroop
where R U based
I need to contact U
Please drop me your email address
on MG@cleantech.in
Mukesh gupta


Hi Mukesh, sent you email.