ciao ho un problema enorme con la crittografia..
ho un progetto dove devo realizzare crittografia ibrida, ovvero :
1) generare chiave tripleDES (key session)
2) crittografare con la key session un file
3) recuperare chiave pubblica da un file
4) crittografare la key session con la chiave pubblica
5) restituire un unico documento unendo le parti crittografate..
il punto 5 non l'ho ancora realizzato ma per il resto mi sembrava semplice..
sulla base delle classi trovate in rete ho realizzato delle classi che dovrebbero fare tutto..
(molte parti sono prese dall'ottimo codice di netarrow che ringrazio)
mi aspettavo che funzionasse quasi tutto.. invece mi blocco subito..
appena leggo il file contenente la chiave pubblica mi da errore :
java.security.InvalidKeyException: IOException: ObjectIdentifier() -- data isn't an object ID (tag = -96)
lo stesso file se lo leggo cercando di recuperare chiave privata TripleDES funziona !!codice:public PublicKey getPublicKeyFromFile(String pathFile) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException { // lettura chiave FileInputStream fis = new FileInputStream(pathFile); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int i = 0; while((i = fis.read()) != -1) { baos.write(i); } fis.close(); byte[] keyBytes = baos.toByteArray(); baos.close(); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(keyBytes); PublicKey publicKey = keyFactory.generatePublic(publicKeySpec); return publicKey; }
cosa significa ? che il file contienene indubbimanete una chiave generata in TripleDES e non una pubblica RSA ?
ho provato ad aprire il certificato con un software (DIGITALSIGN 3.0) e mi compare :
algoritmo di firma : sha1WithRSAEncryption
illuminatemi vi prego !!!
![]()
![]()


Rispondi quotando
