Hi,

I was trying to add test coverage to res_crypto using canned reference data, 
but RSA encryption uses dynamic padding (OAEP or PKCSv1.5) to avoid generating 
the same values each time, as this would be cryptographically weak and 
susceptible to cryptanalysis.

There are other times where you might need external validation done without 
canned results: packet exchanges that generate timestamps or nonces, dynamic 
uuid's based on timestamps i.e. V1 UUIDs (see Section 4.1.4 of RFC-4122), 
environmental seepage into the tests (local IP addresses when talking to 
external STUN servers, for example), etc.

The long and the short of it is, sometimes you want to generate results 
internally, and then validate them externally... or conversely generate results 
externally, and validate them internally:

https://issues.asterisk.org/jira/browse/ASTERISK-30037

To this end, I've added support for running a command externally and both 
piping it input (if it requires input... some commands just take command-line 
arguments, of course) and then capturing its stdout and stderr values for 
comparison.

You can see the original review request here:

https://gerrit.asterisk.org/c/asterisk/+/18525

To do this.  You can also see coverage of this functionality via common UNIX 
commands here:

https://gerrit.asterisk.org/c/asterisk/+/18526

And then the test coverage to res_crypto that originally put me on this path:

https://gerrit.asterisk.org/c/asterisk/+/18532

I'm happy to discuss adding more test coverage to 18526 if anyone thinks it 
needs it.  I'm also happy to work with others that want to add unit-test 
coverage to other modules and resources that leverages external processes.

Thanks,

-Philip


-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to