Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(ai.triton.server): Add Model Encryption support for Triton Serve…
…r Service (#3986) * feat(EncryptionUtils): add class and methods skeleton Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): add test skeleton Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): add basic tests for createDecryptionFolder method Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): refactor to Gherkin style Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): removed comments, renamed method Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): rename method Signed-off-by: Mattia Dal Ben <[email protected]> * feature(EncryptionUtils): add createDecryptionFolder method implementation Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): improve test with workdir setup/teardown Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): renamed method cleanup -> teardown Signed-off-by: Mattia Dal Ben <[email protected]> * test(resources): add encrypted files for testing Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): add basic tests for decryptModel method Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): simplify teardown method * test(EncryptionUtils): move test WORKDIR in java.io.tmpdir Signed-off-by: Mattia Dal Ben <[email protected]> * test(EcryptionUtils): add Gherkin style comments Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): add test for ASCII-armored file Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): stricter checks on exception throw Signed-off-by: Mattia Dal Ben <[email protected]> * docs: add copyright notice Signed-off-by: Mattia Dal Ben <[email protected]> * test: fix expectation param order Signed-off-by: Mattia Dal Ben <[email protected]> * build: add org.bouncycastle.openpgp as local dependency Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): add first implementation of decryptModel method Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): fix BouncyCastle provider addition Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): add preconditions check Signed-off-by: Mattia Dal Ben <[email protected]> * refactor: improve var names Signed-off-by: Mattia Dal Ben <[email protected]> * refactor: remove unnecessary toString Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): move stream instantiation in decryptFile method Signed-off-by: Mattia Dal Ben <[email protected]> * refactor: move stream instantiation close to use Signed-off-by: Mattia Dal Ben <[email protected]> * refactor: improve var names Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): rethrow PGPException on decryption failure Signed-off-by: Mattia Dal Ben <[email protected]> * test(resources): rename resourse files Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): add zip file test Signed-off-by: Mattia Dal Ben <[email protected]> * test: refactor to Gerkhin style Signed-off-by: Mattia Dal Ben <[email protected]> * test: remove unnecessary vars Signed-off-by: Mattia Dal Ben <[email protected]> * test: remove unnecessary "this." Signed-off-by: Mattia Dal Ben <[email protected]> * test: renamed method Signed-off-by: Mattia Dal Ben <[email protected]> * test: renamed method givenAFileExistsAtPath Signed-off-by: Mattia Dal Ben <[email protected]> * test: add basic test for deleteModel method Signed-off-by: Mattia Dal Ben <[email protected]> * test: add test for missing directory for deleteModel Signed-off-by: Mattia Dal Ben <[email protected]> * test: add check for parent folder in deleteModel test Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): add deleteModel method implemention Signed-off-by: Mattia Dal Ben <[email protected]> * test: refactor to Gerkhin style Signed-off-by: Mattia Dal Ben <[email protected]> * refactor: renamed method to thenAFolderExistsAtPath Signed-off-by: Mattia Dal Ben <[email protected]> * test: remove forgotten comment Signed-off-by: Mattia Dal Ben <[email protected]> * test: add .zip test file Signed-off-by: Mattia Dal Ben <[email protected]> * test(EncryptionUtils): add unzipModel tests Signed-off-by: Mattia Dal Ben <[email protected]> * test: add unzipModel method test for wrong file format Signed-off-by: Mattia Dal Ben <[email protected]> * test: add decryptModel test for wrong file format Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): add check for wrong file format Signed-off-by: Mattia Dal Ben <[email protected]> * test: improved test naming Signed-off-by: Mattia Dal Ben <[email protected]> * test(resources): fixed wrong test .zip file Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): initial implementation of unzipModel method Signed-off-by: Mattia Dal Ben <[email protected]> * build: add dependency on org.eclipse.kura.core.cloud for unZip class Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): add ZIP magic number check Signed-off-by: Mattia Dal Ben <[email protected]> * test: refactor to Gerkhin style Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): remove unnecessary todo Signed-off-by: Mattia Dal Ben <[email protected]> * test: improve error handling in given/then methods Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): add getEncryptedModelPath method skeleton Signed-off-by: Mattia Dal Ben <[email protected]> * test: add getEncryptedModelPath tests Signed-off-by: Mattia Dal Ben <[email protected]> * test: add forgotten no exception check Signed-off-by: Mattia Dal Ben <[email protected]> * test: fixed typo in WORKDIR path Signed-off-by: Mattia Dal Ben <[email protected]> * test: fix wrong "when" method Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): add getEncryptedModelPath method implementation Signed-off-by: Mattia Dal Ben <[email protected]> * test: updated test with new behaviour for cleanModelRepository Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): updated cleanRepository behaviour Signed-off-by: Mattia Dal Ben <[email protected]> * build: add bouncycastle lib in build properties Signed-off-by: Mattia Dal Ben <[email protected]> * build: add necessary dependencies Signed-off-by: Mattia Dal Ben <[email protected]> * refactor(EncryptionUtils): do not throw from cleanRepository method Signed-off-by: Mattia Dal Ben <[email protected]> * feat(triton): add password field Signed-off-by: Mattia Dal Ben <[email protected]> * feat(triton): add decrypted model folder path Signed-off-by: Mattia Dal Ben <[email protected]> * feat(triton): add encrypted model support Signed-off-by: Mattia Dal Ben <[email protected]> * test: temporary path fix Signed-off-by: Mattia Dal Ben <[email protected]> * fix(build): use range for kura.crypto version dependency Signed-off-by: Mattia Dal Ben <[email protected]> * refactor: use try-with-resource Signed-off-by: Mattia Dal Ben <[email protected]> * fix: remove debug print Signed-off-by: Mattia Dal Ben <[email protected]> * feat: improve decrypted model directory creation Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): use createTempDirectory for decryption dir Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): dynamic decrypted model folder Signed-off-by: Mattia Dal Ben <[email protected]> * refactor: create startLocalInstance method Signed-off-by: Mattia Dal Ben <[email protected]> * refactor: add isModelEncryptionActive method * refactor: rename method to modelsAreEcnrypted Signed-off-by: Mattia Dal Ben <[email protected]> * test: temporary path fix Signed-off-by: Mattia Dal Ben <[email protected]> * test: fix test work dir path Signed-off-by: Mattia Dal Ben <[email protected]> * test: add dedicated var for temp dir path Signed-off-by: Mattia Dal Ben <[email protected]> * feat(ai.triton): handle decrypt folder deletion Signed-off-by: Mattia Dal Ben <[email protected]> * test: add decryptModelShouldThrowWithDirectory test Signed-off-by: Mattia Dal Ben <[email protected]> * test: fix wrong path in unzipModel test Signed-off-by: Mattia Dal Ben <[email protected]> * build: use bouncy castle provider from target platform Signed-off-by: Mattia Dal Ben <[email protected]> * revert: use bouncy castle provider from target platform This reverts commit a2b746e. * fix: add check for non-existent folder in getEncryptedModelPath Signed-off-by: Mattia Dal Ben <[email protected]> * build: use bouncy castle provider from target platform Signed-off-by: Mattia Dal Ben <[email protected]> * feat(EncryptionUtils): log exception stacktrace on failure Signed-off-by: Mattia Dal Ben <[email protected]>
- Loading branch information