NASA-AMMOS / AIT-DSN

MIT License
19 stars 10 forks source link

Add initial support for command encryption API #140

Closed nttoole closed 2 years ago

nttoole commented 2 years ago

Design Review Wiki: https://wiki.jpl.nasa.gov/display/AmmosArch/AMMOS+Command+Encryption+Design+Peer+Review


Email content from initial KMC API:

A tar ball of the KMC python library for SDLS is now available at: https://cae-artifactory.jpl.nasa.gov/artifactory/webapp/#/artifacts/browse/tree/General/general-develop/gov/nasa/jpl/ammos/seo/asec/kmc/3.0.0

Full path with filename: https://cae-artifactory.jpl.nasa.gov/artifactory/webapp/#/artifacts/browse/tree/General/general-develop/gov/nasa/jpl/ammos/seo/asec/kmc/3.0.0/MGSS-AMMOS-30.02.000-KMC-3.0.0-B0-RHEL7-64_Bit_kmc-python-sdls-client-0.1.0b0.tar.gz

This is just the first engineering release. Any feedback you have is most welcome.

In a normal install, the library will go under /ammos/kmc-crypto-client/lib -- but you can put it elsewhere, and use:

$KMC_HOME to control where the libraries are, and $KMC_USER_HOME to control where the config file is.

The config file is kmc-sdls.properties

There is an install script to install the software, but I am not sure if that will exist in the next version. The developer did not want you to have to deal with PYTHONPATH, but more discussion is needed on the approach.

python setup.py install --user Then AIT can import it normally: from gov.nasa.jpl.ammos.kmc.sdlsclient import SdlsClient To uninstall the package, all you need to do is: pip uninstall SdlsClient

Once again, I am not sure about that approach, but it is there now.

The code will throw exceptions, using the SdlsClientException class.

All this engineering release does is add a Security Header and a Security Trailer with random bits. No connection is made to a Crypto Service.

The SIS is being generated. Coming soon.

Note: This code is NOT open source. So, it needs to be incorporated in a way that makes it optional, and obtained separately from AIT. We can work on making it open source, but we do not have an open source authorization at this time.