Cómo envolver una clave RSA con modo AESWRAP

Se supone que debo envolver mi clave privada RSA con el modo AESWrap (siguiendo RFC 3394). Sin embargo, recibo una excepción que dice "la longitud de la clave que debe ajustarse debe ser múltiplo de 8 bytes". Creo que esto se debe principalmente a que RSA PrivateKey está en formato DER y, por lo tanto, se está lanzando la excepción. Por favor, sugiera cómo resolver esto.


    SecretKey swkKeySpec = new SecretKeySpec(KEK, 0, swkKey.length, "AES");///KEK is a 256 bit AES key used for wrapping.
    cipher = Cipher.getInstance("AESWrap", "SunJCE");
    cipher.init(Cipher.WRAP_MODE, swkKeySpec);

    byte[] key = keyAttributes.getPrivateKey() ///This returns private key in encoded format which is to be wrapped.
    KeyFactory factory = KeyFactory.getInstance("RSA"); // throws NoSuchAlgorithmException
    PrivateKey privateKey  = factory.generatePrivate(new PKCS8EncodedKeySpec(privateKeyBytes));
    log.debug("key.length: {}", key.length); ///this gives 634.
    wrappedAppKey = cipher.wrap(privateKey); ///exception thrown at this point`
Respuesta 1

Tengo <div id = top1> <div id topsub1> <ul class = "student"> <li> <a href="/thomas"> Tom </a> </li> </div> <div id topsub2 > ...

Estoy buscando aprender Desarrollo web con Spring 3.xy también estoy buscando integrar hibernate en él. ¿Cuál es el mejor recurso para aprender desarrollo web con Spring MVC e Hibernate? Soy nuevo ...

Cuando ejecuto el programa y coloco un par de hipotecas y luego termino el programa, imprime toda la matriz de objetos, hyprayArray [], pero por alguna razón solo imprime el último ...

Actualmente estoy diseñando algunos servicios de integración para una aplicación web. Las aplicaciones externas de Java producen una fuente de datos que proporciona datos, los datos se masajean según sea necesario y luego se ingresan en ...