Guía de desarrollo

Local Navigation

Codificadores y decodificadores de claves

Las claves codificadas pueden transmitirse como paquetes completos (incluyendo cualquier parámetro necesario del sistema), de forma que el destinatario sepa claramente cómo decodificar el mensaje.

La codificación y decodificación de las claves se llevan a cabo con el paquete net.rim.device.api.crypto.encoder.

Ejemplo de código: codificación y decodificación de claves privadas RSA

El siguiente ejemplo de código muestra cómo codificar y decodificar claves privadas RSA mediante PKCS8, un esquema común de codificación de claves privadas. Comienza con la creación de un nuevo objeto RSACryptoSystem para la generación de claves. Crea el par de claves para retener la clave RSA. Codifica la clave mediante la clase PrivateKeyEncoder.

// Create a new RSA cryptosystem for key generation.
RSACryptoSystem cryptoSystem = new RSACryptoSystem();
// The key pair can hold the RSA keys.
RSAKeyPair keyPair = new RSAKeyPair( cryptoSystem);
RSAPrivateKey privateKey = keyPair.getRSAPrivateKey();
// Encode the key using the PrivateKeyEncoder class.
EncodedKey encodedKey = PrivateKeyEncoder.encode( privateKey, "PKCS8" );
byte[] encodedKeyData = encodedKey.getEncodedKey();

El ejemplo siguiente muestra cómo decodificar la clave codificada.

RSAPrivateKey decodedKey = ( RSAPrivateKey ) PrivateKeyDecoder.decode(
                                         encodedKeyData, "PKCS8" );

Ejemplo de código: codificación y decodificación de claves públicas de curva elíptica

El ejemplo siguiente muestra cómo codificar una clave pública de curva elíptica con X.509.

// Create a new EC cryptosystem for key generation.
ECCryptoSystem cryptoSystem = new ECCryptoSystem();
// The key pair can hold the EC keys.
ECKeyPair keyPair = new ECKeyPair( cryptoSystem);
ECPublicKey publicKey = keyPair.getECPublicKey();
// Encode the key using the PublicKeyEncoder class.
EncodedKey encodedKey = PublicKeyEncoder.encode( publicKey, "X509" );
byte[] encodedKeyData = encodedKey.getEncodedKey();

El ejemplo siguiente muestra cómo decodificar una clave pública de curva elíptica con X.509.

ECPublicKey decodedKey = ( ECPublicKey ) PublicKeyDecoder.decode(
                 encodedKeyData, "X509" );
Tema siguiente: Certificados
Tema anterior: Acuerdo de claves

¿Le ha resultado útil esta información? Envíenos sus comentarios.