[OOM-CERT-SERVICE] Add Unit test for private key in pkcs1 format 98/122498/3
authorTomasz Wrobel <tomasz.wrobel@nokia.com>
Wed, 7 Jul 2021 15:07:45 +0000 (17:07 +0200)
committerTomasz Wrobel <tomasz.wrobel@nokia.com>
Fri, 9 Jul 2021 08:01:29 +0000 (10:01 +0200)
Issue-ID: OOM-2753
Signed-off-by: Tomasz Wrobel <tomasz.wrobel@nokia.com>
Change-Id: I91000b223c30eae1cd9f4d48be9e8197e239e1d2

certService/src/test/java/org/onap/oom/certservice/cmpv2client/ClientTestData.java
certService/src/test/java/org/onap/oom/certservice/cmpv2client/Cmpv2ClientTest.java

index cfee3af..845361e 100644 (file)
@@ -35,6 +35,8 @@ public final class ClientTestData {
     private static final String WRONG_OLD_CERT = "wrong old cert";
     private static final String WRONG_OLD_PRIVATE_KEY = "wrong old private key";
 
+    private static final String TEST_ENCODED_PRIVATE_KEY_IN_PKCS8 = "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRRFNOS0pCUU5XRmF0ajUKUmRhTmQyMGdnTnBOVUVaYzgxU1Y1d0hLeHEwUy9rT0llTG8rekI5c3lkUUJLWm9JRXJPL3JIekwzb0VCNW5YNQp4NVBkeTViYUdYTzRQZDVCUStrSXRHckFnNzVrRldmT3VHNU9GWUxpWldMUEcra3FBRXJKNTdzQlB5TzNKNjVxCkEzN0gxNnBiZVhRL2VzR2RNaVZsenM4dE9UOEtaT1lDQUpGQXg1ZEk4OEowaEt4ZThONFdrZEJLSStXVndKMUsKR05pZmgwc2Jjam9rOG1Gbll4Nzcwd3BuZU5nbkZUbU9MWXFIUTRuSklUODdza1BYSUt1RHNMRUJDL01kVGQ0QwpPTTZJekZYZmQxNzNDc1p5UnR3V0F2ZXNDcWJGYkVhcDBiWHlCRFN1R0w3NlhGdzRTdjZiZkoyano2SjIyRU9SCmVPOGpVdWhKQWdNQkFBRUNnZ0VBUWJyZHBjUHRRSnZwbndEY2x6M3A3TWo5K2tFSXo1WHpORENaR2R4SVVIRWIKa3ZnVlhQK2RML3BvaGJpSmhzNjZVRXhTZGJsczQ3ZzUyZEl6aFo1YzNIUXJBRWl3VC80NVIxU0xNUW5CSmpDZgpWai9MbGpVWnlVdGt1MWlCNzNWSjdacTltaVV4T050NnFZSFFTaE5CSFB0OGcwRVNlK0lyV1l0eXN6UjhadllXCjlqWm9xb0pOTW5ySVkyNmdtdFRCRURpTmVmaEhBMGVoVHkwYzNBQ1lDTUY3aWlNenplMWhkUjZvTDhuTEZscmQKVGJZRGdCUzBueEpvRVpxQnZBZWViZFVBaXc1UCtqZ1NXcXhnUkhpWGk2Rk0xWXVnMGF5Mm9GNEl1alV0ek5kNwplbnNqeTVTTGFGcVp5dy81bkdlWDJMTXYvbFovQUtWYlZ6NnNBa3RVdFFLQmdRRHBBT3BBUVorNWRheGxyQk5oClFoYy9ndnRPekJpRTA0YU5EdDVLMllEVU80dHdFRmYxTVdXSkNrV3Z1czNOSUphdkJ1K25GYzdEREphUEFxbk4KZnQrUGw3NTJ4UUlJRk1GdUt5QTdKL1hSZzFjVUIzNEFrZWtZeTZvRlYwa2FlWmZvYXBRbGdDWnFWVkd5L2FCdAprSHBndDJnckpZZG82OE11bFQ0ZWplbGE4d0tCZ1FEbTg3UWE4YzFYRTNuTGFQcGJIeTU5N0N5S0ZKTzBRdC9tCm1RT1FNaEJCOTJGU0JpRE05ZHFkbUU2d3JVU2NFYVo3aDlaZ1kwQUdxVVFobzE3d3oyL1BxaGhaUFRiOU0rVTgKWUVaWTdnWnNoYkJ1MDgvTkJLTDNGTitGd216VG8xN1d1SlNyQWFWV3dra1RMOWVSbkI2cUFTeHBMaDFKQ0J4cQpQSE9Kd1FmRzB3S0JnUUNSTHlUSGpSeDliemxRMFB2eWFrQWFMdjl3aGZQeEwreHpFSVNxbHdTVE9kY1VxTnBsCnliVyt3a3ZSeDlCY3RLV3Z3ZDZxZWdndnVUUkhRQjJXRWl3elNSWkE0MWowdUJvZkQzZ3g1Q0Jqd0RjT0grei8KWmV1Y3E2cnhVUVlZSFJQdW1ocGRrNUJjU1hWeTFsNlVacVlhaGEyKzFNK2ZMT2lkcWhqZTZRWXl5UUtCZ1FDbwpTclhYWEpRUSs3UW9zVnFkdzk4UkMyUjVTZjFId2VOK0djb3E3UkJEd1l3OVJSSHB5TTJCUVZjMkQweUxuYUQvCkswRGdBL0xINTlncDJ1NTM4L0M2Rm15ZnVxZXpZbm1Nd1dzQnFwRXJ5MCtCc3Y4ZG1sOVdSUE9NZU56c2E0UFUKVzdTWjJCMHZWMndBZTBCT2JzRTVpSmxnRzZaamJYR25TRjI0NTl4TzJRS0JnRER1cXJBcThQMXpXU28wcWZ0QgpkTS9Xc3p6U3VZRHdjemhvajNKek5VK3lvQ3g4ejNzY0NML240eXFUT1RiWVhLTXFHbUVrSW01eXJ1SWlJeHBRCmNJM1pDUlVZbHZDY0FaeCtiVU1QSXNkek1TeGJMaHNqSU5Oc3F4dDJlMlQvd2dJWXpWenVERExpZ1drN1lDZkEKNDJ4YXVldHQ0M21qM25wYUFvcURIVG92Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K";
+    private static final String TEST_ENCODED_PRIVATE_KEY_IN_PKCS1 = "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBOHNMTXZWdlRmaTRtRWZpcithbS9jbzY2Z04rcVhveWVDbHFxNXVBZWdsYkgvSmJsCm11dlBMV3pnREZQZnVQSEQ1N2FqL1cxWnhjUFBPSXJNTkhsdkJuRU1HRjZnOVJPd0twRVA1OGx1cTVDbmxFc0IKckowdlRVbUZFSXlwdkU5UGk2eURwTVJsV1hkZm1nVXBIRmJMcmZ1V21ldXZ0MEFPaW90RHZiWkx6amV5NjZkMApHUmtySXVlUVhoWlNVTVk4akltRjdqUEg5WVNZaHNQTnR6N0VVcXU0UCtXb0pkc0EwcnFxRVVkaXM4SC9udXlQCmFEOS9OUW1HdUtzRW1ZVVNCcExiMHFXWklhN0lXWHdmQ21KbEVVZEUvYjM4aEw2T3c0NzlZZ2dtYlBKUzVZam4KdGhkaEhkZFlqTW5hV3BNeGowUWVzMVFvR01NaHYvdExyeTBzcVFJREFRQUJBb0lCQUZYcklnRm03WXg4RXRkTApkcnB2SEtZVDQraFd3UHFqdEErZ0ZWcVBPZDBSajhoVE04Skg4VlIzY3ppSnV1Vy9FNEgvL3p4anBtRTdNeTBrCjJxODd4MUsxVWYyU0NFK1UvMFdoZjhxZVhULzFlNG9kbmVNVTRyZnM3RjUyR21EZWhSMi9HZnlIMGdML0grUG8KTGF1dEFIdDhUc245UTN5TS9GaUdmNXcyVjlBTThCSUcreVJ3d0hhMjU1UEJrNzhBTnQrc2psend6M053QVB2NgpKNldXWTBEWnBJZzlEenBlRnRqNWJMaks4OGlFTDAwb1l2empQU2tuOTJhNnNhZXRDUG16bGkrRzB3SzUwK25yCjZCS2w1MFFsZTQ2bkIya2Zhd1JqY3h4RlJHTUdXbE4yYkZzNkkrU00zTGVFQWhiZXhiUWEyRGtxZHhzRU8zc24KVmtJdVN6RUNnWUVBL3NUMTBzZG94eVV2Y0NGTGw2dlpwUldEZTlIcm13NjM1aUo3Ui9Idi9Vd3pBWEE2VlZtcwpKN1c1WFNFSjRtZFNXRllqY09TekFLc2ZmWlF1cVZsRTlxOFNkaExjQVlvdTNpMW9UWUJ4S1J2MnZxZHJrMS9ECjAyVDJyTXY0MEJBOWFEUXgxRHN6V1BKNW9EYWJGZUdWY09vck5hTW04eTFVQlE4MitsOS9aQzBDZ1lFQTgrNzkKZ2JkR0FlRVl1bldUS2ZwTGRISTZsZWl1eFEyUks1N3VmNzlZOGJQREw4YktBREZvMnYvNW9oNVlSUzRTOThpTgpRTzlQYW0rdG5TRE1aRHNjVkVNRm4rbUVpaVNRUm55OG5jZm5UVTdDa21qM3ZnRlZEbGpGL2FpRk9kRk5rRkJjCnJIem5yd3pYUVVuMDlmUEVUS0IwcmFQL0tHNkJDcDV2eUNEZGkrMENnWUVBL0FKaVU1UlM3YUszMFFmdVdXSngKVU4zK0NLMzJpNU84anhXT3N2VDcrcWUwVUhqdUN0MC84S3ZPWnZPMmJsRGI0R3VjZFNDVWZGWEpPWlFwci9TUQp4aDhaZU5oZzdkajlVV0xES042amtSR0xPcjRyS0VWelZKa3JkSFB6ZEFTTWFaWXZzQXE3V1FISkU1VFFSWTIyCklGSlNXYVZBY3cxa2JmakYzbFkya2lVQ2dZQnZ5QVREZklqSU02NXhRNCs4bk1ZWEJvRnlVTDVGN29Hbnk1emYKVFlBa3dvdWZTU2tvRFh4UFh4MjEvTkhXWWRhdlZXZmxhY1Nxc2FLTmJvbzdKQnRIUWE5Q0tIQmtIWDAvejhsZgpSRXZxVVQwNGVvR013RytKczRTSFNNSkVUSFdPdkVTN2hrRmxKaTA5N2ZZaS95SGxPMkk4Yi9wdFBMWkZkM1VoCjhHMlZ3UUtCZ1FDWGE2eXNhb09uREFXNFEzNTlYeGJ0TEJ3NTltR0NwVDRsbzJFR0tWaWVkQWh5Sk5wY01nbTEKN0NxSzN2Uml4enRTZGNpa2hHQ3IweGVWWDdEbFphb1ZPTURGeHZZWDhmSkJ6N1N6ejNDc29WZS8vSXRKR2kzdQppUThpQWhaN3J3Szk1TjZHeUI0RHhBMWhVV09LYVczbXVHWEpOc1JySmpqdk9tY3VBbXgzSWc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=";
     private static final String TEST_ENCODED_OLD_PRIVATE_KEY = "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2d0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktrd2dnU2xBZ0VBQW9JQkFRRHVTZ0FtVWovWEo5NlQKOGkzREZxWE1QOUpaa3RkeEtYZUV2NDZhcGFVTmJyNGNoSi9EM2pLdTFBRFdWVEx4YlNyOEpuT0dDSUFzenZjaQozQmxLb1VUaHVvaUl0NXBnKy9kaFc2SDRnazdtdTRVdzAxdEFVQjZqM2ZubVhJTDZaMTlmS2F0bXlRTmVMSzRQCnlNNTFMTG03ZjgyNjZsR0NrektmdWx0NVAvc21Ya0lxL0FGN1d6Q3gzclNXOW0yZkdKaEFGcjAyL09pV1JvOWIKd0VHSjFkUnJhaTc5ZGtpMEN4eFlDMXYvb3FXVTJLTmpSZDF5RXNXb0ZxTC9pd1NoWCtwazl5cmtSMzQ0aEZLZwpRVFl1bGg3Z0NKQmwyOFhGM2kraDNiVHZJL3VMRk5PLzdvZ29PTjlDM04wdTRiTzhlNUNnUERHZWI5eG9VQklrClVnM0hOSkczQWdNQkFBRUNnZ0VCQU1qOTFEaCtvZWlxY1h5YkJ1eUtPdGtZY0NZcnpOdGZuYmQwR0NYcldGZ0gKTkFZNys4S3J0bFp1N2pIYmRYZmNuQ2hKaXFIZ283U244aDhPUmFzRWNtUndBV0JJZGNnZVgrQlgrVHZ6TmZnNgo3YkpzWklqUHk3aHVzSzRWRkVtQVRocW52REtibE9Lbmp6NHpJNm9FU3JtVHFJVmp4ZEw4cy9PMHJobU0xUnZiClB0QXRCeDNMTEtBUFZWTlN6a05JeHFIY1cwaFJ1bFlqOU81S3hmZDJJdDlrKzVzY0RpQU5qcU9YTVRIMmxrdzcKcE41ZFRtNU1EQXcrMGpaUVNpUFRia0hFQWdPZElxNmxuYStSN1lBRkFNc0ZVKzlmbnNEZVR2M2VHT2h6ZVhCSApJRlRkTStIOVU3Tm8xOW91d0NHU05JTEJESnE1V2JVd3VLQWRTUDBVaGZFQ2dZRUEvNElFa1g2djJVSUpqbldwCjBnbzBTSFJFamQ1Vmk0T2dnQW00L0hDbWx6Q3ljZzljRUhXeXFsd3RNN24xVkw5WDdJaytxMFc2UjBYRXlJbHMKTWlPSEF0cFhxbDB0RnRNQVd5SnBLY05vaktyRjlMR3g2VDVKQk5HTFo1b2JCaXRLNTZtTVZta0RTTzljc3hRYgpURXhQY1JGZmpQdkpJTlBRNDRZYWNRR0padThDZ1lFQTdyOStJN2svdzg2YVNWWkJObTh4NURrZVd4anRBSmRnCndFeXpEWklxYXEwU3IvQ0dxZnRSTFFrNnF4RDQxVWh2d1QrVHVMd2xuWWJMWmRzQmJVVW11cHNBZWpMbnY0RGIKR1RiTHpiNEM1c2FONW13dEJPeU5vaGNoUUVHVUF0RzdzN3BCYStsOE9MSmVzS1FsMWJBc0JXRC9leG01bzZyYwo0T0NYQkNpaHdia0NnWUFjU2ZEbml2YzlQcXFBTTFiU0FuODNabWdRclFVYnBUOG43ZXVsUjNPcVdhSG9MdnNxCmQxMklyeHZ5Rml5cmJXUDJ0RnRUNnl4c3A3VFozeDB6ait0cXpYSFhVdW1qRlVsOHpacUhIVE4rSDRvN1JWRkYKV2JnTDZJZGV1UmswM2FZMWIvZ3h1UDY4SElSTzczTDJSNXlrRUNCY0k2UnBGZ3FTcGs1WEpLeHAwUUtCZ1FEWAp5VmhYTFg1R21odTFJVEs3NG5Dem1EU3BuYlBJandteGhTRm9xSzJSMFhCTWVSY2QxN3FjKy9SODNWQXFaZGdzClVDeFNFaXZsWHduRHU5aGtUTlllWHk1bFJGRldNejdVWVVSL1pyZjBvWTFyc0daWVJ2NFVmTmRlM21iS3pZbmIKZmdMWGFDY1FqNWNxREpMdHV0ZHUzU2JNdW9taE5qT0JSVHo1VTBnd2NRS0JnUURyRy9wZDN6aUw1dFZFSk1KOApUQmdodko1NTZNMjFXaXFRNG1WUGcwbGNub1RXVmdCV0hqS2k2MzNhZVVRRlYrQTN2d3ljS1h4YVdsUzBYWmZVCmRobTJaUnVwYzhaeVA2ZGNaR3VLTWxHR21kSGtGaExIcUNhZXViS25ZUEkyVTFrZklNVGlWR0Jubmk2Y3dkRGIKUzczSG12YVpwU0xsbDlhbXkvZEx1N0QxdGc9PQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==";
     private static final String TEST_ENCODED_OLD_CERT = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVmVENDQXVXZ0F3SUJBZ0lVRncwd1VZc2wxUkF2bHB1bXpqcFRrNjZzNGlzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1V6RVZNQk1HQ2dtU0pvbVQ4aXhrQVFFTUJURXlNelExTVJVd0V3WURWUVFEREF4TllXNWhaMlZ0Wlc1MApRMEV4SXpBaEJnTlZCQW9NR2tWS1FrTkJJRU52Ym5SaGFXNWxjaUJSZFdsamEzTjBZWEowTUI0WERUSXhNRGN3Ck1qQTNNVE0xTlZvWERUSXpNRGN3TWpBM01EWTFNMW93ZHpFUk1BOEdBMVVFQXd3SWIyNWhjQzV2Y21jeEdUQVgKQmdOVkJBc01FRXhwYm5WNExVWnZkVzVrWVhScGIyNHhEVEFMQmdOVkJBb01CRTlPUVZBeEZqQVVCZ05WQkFjTQpEVk5oYmkxR2NtRnVZMmx6WTI4eEV6QVJCZ05WQkFnTUNrTmhiR2xtYjNKdWFXRXhDekFKQmdOVkJBWVRBbFZUCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBN2tvQUpsSS8xeWZlay9JdHd4YWwKekQvU1daTFhjU2wzaEwrT21xV2xEVzYrSElTZnc5NHlydFFBMWxVeThXMHEvQ1p6aGdpQUxNNzNJdHdaU3FGRQo0YnFJaUxlYVlQdjNZVnVoK0lKTzVydUZNTk5iUUZBZW85MzU1bHlDK21kZlh5bXJac2tEWGl5dUQ4ak9kU3k1CnUzL051dXBSZ3BNeW43cGJlVC83Smw1Q0t2d0JlMXN3c2Q2MGx2WnRueGlZUUJhOU52em9sa2FQVzhCQmlkWFUKYTJvdS9YWkl0QXNjV0F0Yi82S2xsTmlqWTBYZGNoTEZxQmFpLzRzRW9WL3FaUGNxNUVkK09JUlNvRUUyTHBZZQo0QWlRWmR2RnhkNHZvZDIwN3lQN2l4VFR2KzZJS0RqZlF0emRMdUd6dkh1UW9Ed3hubS9jYUZBU0pGSU54elNSCnR3SURBUUFCbzRHa01JR2hNQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVzWW1NQytnWTE4WWMKdDVMejJheDlTRjhzaHlNd0dBWURWUjBSQkJFd0Q0SU5kR1Z6ZEM1dmJtRndMbTl5WnpBbkJnTlZIU1VFSURBZQpCZ2dyQmdFRkJRY0RBZ1lJS3dZQkJRVUhBd1FHQ0NzR0FRVUZCd01CTUIwR0ExVWREZ1FXQkJTdDVzYTFCc1VNCjJrTHFpdXNGWkxCWGlFMStJREFPQmdOVkhROEJBZjhFQkFNQ0JlQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnR0IKQUkrYW94LzJPUFdQZC9IanB0b1VhVlRhNkFnZldMMHoyR3NkOS9oVDBPVTdGSWloTEwrUGx4Y3Z2VWVQWGZlRQpHaEtJb3FJb3pERndMeWs1OUVWNVMxSEdsYVI3QnlUZkVJcVl5T0I5YkNPMmlPWjdIcW9vNmxoN2hoUTZXUENRCmtpY3VRMXJRWDJFSHlOVW05aFovU2dWamFYQlpZY0l0cFNsN1lWSVFGUElXY2VYYmtFaG8rSG5HczExTDI0V0QKUWhCNkpWWWJzME9JQzVaNDNablBKaHdHYlVyOCs5Q2IwR0J1dzNITUVMN05mNmFQSWVjOG8ydXphVHU3WXlOegpjYlN4WmMyUzRpeVpSbjdkTldQSmtFUVFGd1dPNlBOYzRwd0xSeC9zR3pHdlY0cFZGdlRuOGE3c0FiVXpwcnZBCmRDNFdjYnJhNE1wTFFKczZqNWJoUFJ1QlRsSXBnZEVhdkVSM1J5bUVGUTBSRHdER2thSndNbkdVVTlqSWdFN3AKR282RG5aV2RJZEFoRlN2Q3RybERLL1NGYmVKM3RTNlMrSUxXUDgydWU3Q0UwSnYrUEVoUnc5aWVreE5hRElNbwpzeXcvM2tnSUNnckV3RjJzUHY5UnVLQ212V3NrMkdKaHRRcXZSK3FFRE5FQW15aXJodFh6L214QUZ0dy9ualpVCjBBPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoK";
 
@@ -53,6 +55,14 @@ public final class ClientTestData {
         return createOldCertificateModel(TEST_ENCODED_OLD_CERT, WRONG_OLD_PRIVATE_KEY);
     }
 
+    static final OldCertificateModel createOldCertificateModelWithPrivateKeyInPKCS1() throws CertificateDecryptionException {
+        return createOldCertificateModel(TEST_ENCODED_OLD_CERT, TEST_ENCODED_PRIVATE_KEY_IN_PKCS1);
+    }
+
+    static final OldCertificateModel createOldCertificateModelWithPrivateKeyInPKCS8() throws CertificateDecryptionException {
+        return createOldCertificateModel(TEST_ENCODED_OLD_CERT, TEST_ENCODED_PRIVATE_KEY_IN_PKCS8);
+    }
+
     private static final OldCertificateModel createOldCertificateModel(String certificate, String privateKey) throws CertificateDecryptionException {
         StringBase64 base64EncodedCertificate = new StringBase64(certificate);
         return factory.createCertificateModel(base64EncodedCertificate, privateKey);
index b44d644..93dcbb7 100644 (file)
@@ -19,12 +19,15 @@ package org.onap.oom.certservice.cmpv2client;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 import static org.mockito.MockitoAnnotations.initMocks;
+import static org.onap.oom.certservice.cmpv2client.ClientTestData.createOldCertificateModelWithPrivateKeyInPKCS1;
+import static org.onap.oom.certservice.cmpv2client.ClientTestData.createOldCertificateModelWithPrivateKeyInPKCS8;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
@@ -49,6 +52,7 @@ import java.util.Base64;
 import java.util.Base64.Decoder;
 import java.util.Date;
 
+import java.util.stream.Stream;
 import org.apache.commons.io.IOUtils;
 import org.apache.http.HttpEntity;
 import org.apache.http.client.methods.CloseableHttpResponse;
@@ -73,11 +77,15 @@ import org.bouncycastle.jce.provider.BouncyCastleProvider;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
 import org.mockito.Mock;
 import org.onap.oom.certservice.certification.configuration.model.Authentication;
 import org.onap.oom.certservice.certification.configuration.model.Cmpv2Server;
 import org.onap.oom.certservice.certification.exception.CertificateDecryptionException;
 import org.onap.oom.certservice.certification.model.CsrModel;
+import org.onap.oom.certservice.certification.model.OldCertificateModel;
 import org.onap.oom.certservice.cmpv2client.exceptions.CmpClientException;
 import org.onap.oom.certservice.cmpv2client.exceptions.CmpServerException;
 import org.onap.oom.certservice.cmpv2client.impl.CmpClientImpl;
@@ -149,14 +157,7 @@ class Cmpv2ClientTest {
         when(httpClient.execute(any())).thenReturn(httpResponse);
         when(httpResponse.getEntity()).thenReturn(httpEntity);
 
-        doAnswer(
-            invocation -> {
-                OutputStream os = invocation.getArgument(0);
-                os.write(BASE64_DECODER.decode(ClientTestData.KUR_CORRECT_SERVER_RESPONSE_ENCODED.getBytes()));
-                return null;
-            })
-            .when(httpEntity)
-            .writeTo(any(OutputStream.class));
+        mockCorrectKeyUpdateResponse();
         CmpClientImpl cmpClient = new CmpClientImpl(httpClient);
 
         // when
@@ -199,6 +200,26 @@ class Cmpv2ClientTest {
 
     }
 
+    @ParameterizedTest
+    @MethodSource("getTestUpdateModelWithSupportedPrivateKeys")
+    void shouldNotThrowExceptionForPrivateKeyInExpectedFormat(OldCertificateModel oldCertificateModel)
+        throws IOException {
+
+        // given
+        setCsrModelAndServerTestDefaultValues();
+        when(httpClient.execute(any())).thenReturn(httpResponse);
+        when(httpResponse.getEntity()).thenReturn(httpEntity);
+
+        mockCorrectKeyUpdateResponse();
+        CmpClientImpl cmpClient = new CmpClientImpl(httpClient);
+
+        // when // then
+        assertDoesNotThrow(() -> cmpClient
+            .executeKeyUpdateRequest(csrModel, server, oldCertificateModel)
+        );
+
+    }
+
     @Test
     void shouldThrowCmpClientExceptionWhenCannotParseOldPrivateKey() {
         setCsrModelAndServerTestDefaultValues();
@@ -415,6 +436,17 @@ class Cmpv2ClientTest {
                 () -> cmpClient.executeInitializationRequest(csrModel, server, notBefore, notAfter));
     }
 
+    private void mockCorrectKeyUpdateResponse() throws IOException {
+        doAnswer(
+            invocation -> {
+                OutputStream os = invocation.getArgument(0);
+                os.write(BASE64_DECODER.decode(ClientTestData.KUR_CORRECT_SERVER_RESPONSE_ENCODED.getBytes()));
+                return null;
+            })
+            .when(httpEntity)
+            .writeTo(any(OutputStream.class));
+    }
+
     private void setCsrModelAndServerValues(String iak, String rv, String externalCaUrl, Date notBefore, Date notAfter) {
         csrModel = new CsrModel(null, dn, keyPair.getPrivate(), keyPair.getPublic(), new GeneralName[0]);
 
@@ -469,4 +501,12 @@ class Cmpv2ClientTest {
             .build();
     }
 
+    private static Stream<Arguments> getTestUpdateModelWithSupportedPrivateKeys()
+        throws CertificateDecryptionException {
+        return Stream.of(
+            Arguments.of(createOldCertificateModelWithPrivateKeyInPKCS1()),
+            Arguments.of(createOldCertificateModelWithPrivateKeyInPKCS8())
+        );
+    }
+
 }