We were trying to verify RFM generated flight log using NPNT test app.
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.
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.
Other issue is as per DGCA guidelines and sample JSON format, FlightLog element should be a sub element of properties element.
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.
- Yes, we are able to verify our Flight Log signature using the latest code from GitHub. There are no issues with string conversion now.
- Yes you are right properties is not an element, its just a part of schema. We have removed it from our logs.
- For Data type conversion, timestamp should be in string format was my suggestion. Rest we will again check and revert.
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
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
kindly help me getting the valid_ PA, what and from we get the same.
thanks in advance
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.
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:
<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 BAMMBHRlc3QwHhcNMTkwMzI2MDcxMTQzWhcNMjkwMzIzMDcxMTQzWjAPMQ0wCwYD VQQDDAR0ZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq51cjR/m cgd0nWO33O3SM84yu3DRdaG8OMYSqzPixY5R+D8niOTVLZvOtaFROSneP1JmUAca Bn5sFhsFxgpJX8O6ee0m9PqLL+LKjexEs5dZ85IG8GqF+UJABaKfBeTPOgI5NAwo yZPBphzxsra1fH2OV2roaCf4ErMnYluuyey/VfFlHTVgC5+VX2wvO+o6pYUuzdNq CvgYwZrMEDCXm+08iZk/qpLgqgUCQTs8qGu/Y0d/EqwGmv9xN8tyxX+IbaeQM7uz tN8PbMf8wY40OqdgNmgaVmMR4mfAO2XJiryR5Y8JACDGf3dhmcDrdtfmNjaHR109 o2/wUPhSdWB/3QIDAQABo1AwTjAdBgNVHQ4EFgQUR4p2KJJXG5cZ8STI66RG6l2o 7yowHwYDVR0jBBgwFoAUR4p2KJJXG5cZ8STI66RG6l2o7yowDAYDVR0TBAUwAwEB /zANBgkqhkiG9w0BAQsFAAOCAQEAV3uurlHMtyopefBpdGj59eLWCrpRYJLKbDtL FCj+tY1/uiwogUMNsEEHEBeEdwM+PIPuzWZ4tSYQ+SvdCCt4/6e9x+c2/1mZKhnR zL/s9o70RyWZXQO+Dz43B5aIIy/qARUhLxU2NVL42q90pInIh/ltT02IVkcibwDn sM4XJhsSyvQlRyYXdPzDeBjEOVYFpafLbC/7a5FBuNwfNKEMWhOj6AELnC8fWb3m aNevhjSH5amGU2XrUp6yIdWUL2HuW7ReSer93Lg6iYujd/aaqk+pWE5bQsC+r2kH pNcpntHJLsd9E1cwzWCJiEM9zK4GXqKV/QDUdPC6FYfEf+ti9A== </X509Certificate></X509Data></KeyInfo></Signature></UAPermission>
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
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/
where R U based
I need to contact U
Please drop me your email address
on [email protected]
Hi Mukesh, sent you email.
Hi, i want to know what is the procedure of getting NPNT provisional compliant.
I have gone through the NPNT user guide. It was written that there would be a double blind test conducted. But how to reach at that point.
Do we have to register first then DGCA will give us a date?