Permalink
Browse files

Merge pull request #53 from revington/v0.6.18-release-crypto

V0.6.18 release crypto
  • Loading branch information...
2 parents a8eb2da + ffb7342 commit 91038b9feaadcc4e1608e781bcb8b72482dd4252 @retrofox retrofox committed Jun 15, 2012
Showing with 98 additions and 94 deletions.
  1. +98 −94 doc/api/crypto.markdown
View
@@ -15,15 +15,14 @@ Además ofrece un conjunto de envoltorios para los métodos hash, hmac, cipher,
Crea un objeto credenciales, con los detalles opcionales en forma de diccionario con las siguientes claves:
* `key` : cadena que contiene la clave privada codificada en PEM.
-* `passphrase` : A string of passphrase for the private key
+* `passphrase` : cadena que contiene la passphrase de la clave privada.
* `cert` : cadena que contiene el certificado codificado en PEM.
* `ca` : cadena o lista de cadenas de certificados de confianza codificados en PEM.
-* `crl` : Either a string or list of strings of PEM encoded CRLs (Certificate Revocation List)
-* `ciphers`: A string describing the ciphers to use or exclude. Consult
- <http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT> for details
- on the format.
+* `crl` : una cadena o lista de cadenas de CRL (lista de revocación de certificados) codificados en formato PEM.
+* `ciphers`: una cadena que especifica los algoritmos de cifrado que deben usarse o excluirse. Consulte
+<http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT> para detalles relativos al formato
-Si no se han dado ningún elemento en `ca`, node.js usará la lista de CAs de confianza publicadas como dice en
+Si no se ha dado ningún elemento en `ca`, node.js usará la lista de CAs de confianza publicadas como dice en
<http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt>.
@@ -36,7 +35,7 @@ dado que puede ser usado para generar el hash digests.
Algunos ejemplos son `'sha1'`, `'md5'`, `'sha256'`, `'sha512'`, etc.
En versiones recientes, `openssl list-message-digest-algorithms` mostrará los algoritmos digest disponibles.
-Example: this program that takes the sha1 sum of a file
+Ejemplo: este programa calcula la suma sha1 de un fichero
var filename = process.argv[2];
var crypto = require('crypto');
@@ -56,24 +55,24 @@ Example: this program that takes the sha1 sum of a file
## Class: Hash
-The class for creating hash digests of data.
+Clase para calcular sumas hash de datos
-Returned by `crypto.createHash`.
+Devuelto por `crypto.createHash`.
### hash.update(data)
-Actualiza el contenido del hash con el `data` dado. the encoding of which is given
-in `input_encoding` and can be `'utf8'`, `'ascii'` or `'binary'`.
-Defaults to `'binary'`.
+Actualiza el contenido del hash con el `data` dado. La codificación de este viene dada en
+ `input_encoding` y puede ser `'utf8'`, `'ascii'` o `'binary'`.
+Por defecto es `'binary'`.
Esto puede ser invocado muchas veces con dato nuevo mientras estos van llegando.
### hash.digest([encoding])
Calcula el digest todos los datos que van al hash.
La codificación (`encoding`) puede ser `'hex'`, `'binary'` o `'base64'`.
-Por omisíón es `'binary'`.
+Por omisión es `'binary'`.
-Note: `hash` object can not be used after `digest()` method been called.
+Nota: el objeto `hash` no puede ser usado después de haber invocado `digest()`.
### crypto.createHmac(algorithm, key)
@@ -85,9 +84,9 @@ Crea y devuelve un objeto hmac, un hmac criptográfico con el algoritmo y la cla
## Class: Hmac
-Class for creating cryptographic hmac content.
+Clase para crear contenidos autenticados mediante hmac.
-Returned by `crypto.createHmac`.
+Devuelto por `crypto.createHmac`.
### hmac.update(data)
@@ -100,7 +99,7 @@ Calcula el digest (resumen) de todos los datos que van al hmac.
La codificación (`encoding`) puede ser `'hex'`, `'binary'` o `'base64'`.
Por omisíón es `'binary'`.
-Note: `hmac` object can not be used after `digest()` method been called.
+Nota: El objeto `hmac` no puede ser usado tras la llamada a `digest()`.
### crypto.createCipher(algorithm, key)
@@ -110,22 +109,22 @@ Crea y devuelve un objeto cipher (codificador), con el algoritmo y la clave dada
`algorithm` es dependiente de OpenSSL, por ejemplo `'aes192'`, etc.
En versiones recientes, `openssl list-cipher-algorithms` mostrará
los algoritmos cipher disponibles.
-`password` is used to derive key and IV, which must be `'binary'` encoded
-string (See the [Buffer section](buffer.html) for more information).
+`password` se usa para derivar la clave y el IV (vector de inicialización), debe ser una cadena de texto codificada en `'binary'`
+(consulta [Buffer section](buffer.html) para más información).
## crypto.createCipheriv(algorithm, key, iv)
-Creates and returns a cipher object, with the given algorithm, key and iv.
+Crea y obtiene un objeto de cifrado configurado con el algoritmo dado, clave e IV.
-`algorithm` is the same as the `createCipher()`. `key` is a raw key used in
-algorithm. `iv` is an Initialization vector. `key` and `iv` must be `'binary'`
-encoded string (See the [Buffer section](buffer.html) for more information).
+`algorithm` es el mismo que `createCipher()`. `key` es la clave usada por
+el algoritmo. `iv` es el vector de inicialización. `key` e `iv` deben ser cadenas de texto codificadas como `'binary'`
+(Consulta [Buffer section](buffer.html) para más información).
## Class: Cipher
-Class for encrypting data.
+Clase para encriptar datos.
-Returned by `crypto.createCipher` and `crypto.createCipheriv`.
+Devuelto por `crypto.createCipher` y `crypto.createCipheriv`.
### cipher.update(data, [input_encoding], [output_encoding])
@@ -143,13 +142,13 @@ Devuelve el contenido codificado, y puede ser llamado muchas veces a medida que
Devuelve cualquier contenido codificado restante, donde `output_encoding` puede ser:
`'binary'`, `'base64'` o `'hex'`. Por omisión `'binary'`.
-Note: `cipher` object can not be used after `final()` method been called.
+Nota: El objeto `cipher` no puede ser usado tras la llamada a `final()`.
### cipher.setAutoPadding(auto_padding=true)
-You can disable automatic padding of the input data to block size. If `auto_padding` is false,
-the length of the entire input data must be a multiple of the cipher's block size or `final` will fail.
-Useful for non-standard padding, e.g. using `0x0` instead of PKCS padding. You must call this before `cipher.final`.
+Puede deshabilitar el relleno (padding) automático. Si `auto_padding` se establece en false,
+el tamaño de los datos a cifrar debe ser múltiplo del tamaño del bloque de cifrado. De lo contrario `final` fallará.
+Es útil si desea utilizar un relleno no estándar, p.e. `0x0` en vez de PKCS. Debe invocarlo antes que a `cipher.final`.
### crypto.createDecipher(algorithm, key)
@@ -164,43 +163,44 @@ El `output_decoding` especifica en qué formato devolver el texto plano decodifi
## Class: Decipher
-Class for decrypting data.
+Clase para decodificar datos
-Returned by `crypto.createDecipher` and `crypto.createDecipheriv`.
+Devuelto por `crypto.createDecipher` y `crypto.createDecipheriv`.
### decipher.update(data, [input_encoding], [output_encoding])
-Updates the decipher with `data`, which is encoded in `'binary'`, `'base64'`
-or `'hex'`. Defaults to `'binary'`.
+Actualiza el descifrador con los datos (`'data'`) suministrados, que
+habrán sido codificados en `'binary'`, `'base64'` o `'hex'`. Por defecto `'binary'`.
-The `output_decoding` specifies in what format to return the deciphered
-plaintext: `'binary'`, `'ascii'` or `'utf8'`. Defaults to `'binary'`.
+`output_decoding` especifica en que codificación debe retornarse el texto descifrado.
+Esta puede ser: `'binary'`, `'ascii'` o `'utf8'`. Por defecto `'binary'`.
### decipher.final([output_encoding])
Devuelve el texto plano decodificado restante, siendo
`output_encoding` `'binary'`, `'ascii'` o `'utf8'`.
Por omisión `'binary'`.
-Note: `decipher` object can not be used after `final()` method been called.
+Nota: El objeto `decipher` no podrá ser usado tras la llamada a `final()`.
### decipher.setAutoPadding(auto_padding=true)
-You can disable auto padding if the data has been encrypted without standard block padding to prevent
-`decipher.final` from checking and removing it. Can only work if the input data's length is a multiple of the
-ciphers block size. You must call this before streaming data to `decipher.update`.
+Puede desactivar el relleno automático si los datos fueron cifrados sin un relleno de bloque estándar.
+Con esto previene que `decipher.final` chequee y elimine el relleno.
+Solo puede funcionar si el tamaño de los datos es múltiplo del tamaño del bloque de cifrado.
+Debe invocar esta función antes de enviar datos a `decipher.update`.
## crypto.createSign(algorithm)
Crea y devuelve un objeto firma (signing) con el algoritmo dado.
En versiones recientes, `openssl list-public-key-algorithms` muestra
-los algoritmos de firmado disponibles. Por ejemplo: `'RSA-SHA256
+los algoritmos de firmado disponibles. Por ejemplo: `'RSA-SHA256'`
## Class: Signer
-Class for generating signatures.
+Clase para generar firmas.
-Returned by `crypto.createSign`.
+Devuelto por `crypto.createSign`.
### signer.update(data)
@@ -209,13 +209,13 @@ Puede ser llamado muchas veces a medida que nuevos datos van llegando.
### signer.sign(private_key, output_format='binary')
-Calcula la firma en todos los datos actualizados pasados a través del objetvo firma.
+Calcula la firma en todos los datos actualizados pasados a través del objeto firma.
`private_key` es una cadena que contiene la clave privada para firmar codificada en PEM.
Devuelve la firma en `output_format` que puede estar en `'binary'`, `'hex'` o
`'base64'`. Por omisión `'binary'`.
-Note: `signer` object can not be used after `sign()` method been called.
+Nota: El objeto `signer` no puede usarse tras la llamada a `sign()`.
### crypto.createVerify(algorithm)
@@ -239,87 +239,91 @@ Verifica los datos firmados usando `cert`, que es una cadena que contiene la lla
Devuelve true o false dependiendo en la validez de la firma para el dato y la clave pública dadas.
-Note: `verifier` object can not be used after `verify()` method been called.
+Nota: El objeto `verifier` no debe usarse tras la llamada a `verify()`.
## crypto.createDiffieHellman(prime_length)
-Creates a Diffie-Hellman key exchange object and generates a prime of the
-given bit length. The generator used is `2`.
+Crea un objeto para el intercambio de claves mediante el protocolo criptográfico Diffie-Hellman
+y genera un número primo con la longitud de bits indicada en `prime_length`.
+El generador usado es `2`.
## crypto.createDiffieHellman(prime, [encoding])
-Creates a Diffie-Hellman key exchange object using the supplied prime. The
-generator used is `2`. Encoding can be `'binary'`, `'hex'`, or `'base64'`.
-Defaults to `'binary'`.
+Crea un objeto para el intercambio de claves mediante el protocolo criptográfico Diffie-Hellman
+usando el número primo suministrado.
+El generador usado es `2`.
+La codificación puede ser `'binary'`, `'hex'`, o `'base64'`.
+Por defecto `'binary'`.
## Class: DiffieHellman
-The class for creating Diffie-Hellman key exchanges.
+Clase para crear intercambios de clave mediante el protocolo criptográfico Diffie-Hellman
-Returned by `crypto.createDiffieHellman`.
+Devuelto por `crypto.createDiffieHellman`.
### diffieHellman.generateKeys([encoding])
-Generates private and public Diffie-Hellman key values, and returns the
-public key in the specified encoding. This key should be transferred to the
-other party. Encoding can be `'binary'`, `'hex'`, or `'base64'`.
-Defaults to `'binary'`.
+Genera claves Diffie-Hellman, pública y privada, y devuelve la clave pública con la codificación especificada.
+Esta clave debe ser transferida a la otra parte —la otra persona, máquina, etc.
+La codificación puede ser `'binary'`, `'hex'`, o `'base64'`.
+Por defecto `'binary'`.
### diffieHellman.computeSecret(other_public_key, [input_encoding], [output_encoding])
-Computes the shared secret using `other_public_key` as the other party's
-public key and returns the computed shared secret. Supplied key is
-interpreted using specified `input_encoding`, and secret is encoded using
-specified `output_encoding`. Encodings can be `'binary'`, `'hex'`, or
-`'base64'`. The input encoding defaults to `'binary'`.
-If no output encoding is given, the input encoding is used as output encoding.
+Computa el secreto compartido sirviéndose de la clave pública (`other_public_key`) del emisor del mensaje
+y devuelve el valor ya computado del secreto compartido.
+La clave suministrada es interpretada usando la codificación especificada en `input_encoding`.
+Para el secreto se usa la especificada en `output_encoding`.
+
+Las codificaciones admitidas son: `'binary'`, `'hex'`, o `'base64'`.
+La codificación por omisión para `input_encoding` es `'binary'`.
+Si no se especifica una codificación para `output_encoding` se usará la misma que para `input_encoding`.
### diffieHellman.getPrime([encoding])
-Returns the Diffie-Hellman prime in the specified encoding, which can be
-`'binary'`, `'hex'`, or `'base64'`. Defaults to `'binary'`.
+Devuelve el primo Diffie-Hellman en la codificación especificada que puede ser
+`'binary'`, `'hex'`, o `'base64'`. Por defecto `'binary'`.
### diffieHellman.getGenerator([encoding])
-Returns the Diffie-Hellman prime in the specified encoding, which can be
-`'binary'`, `'hex'`, or `'base64'`. Defaults to `'binary'`.
+Devuelve el primo Diffie-Hellman en la codificación especificada que puede ser
+`'binary'`, `'hex'`, o `'base64'`. Por defecto `'binary'`.
### diffieHellman.getPublicKey([encoding])
-Returns the Diffie-Hellman public key in the specified encoding, which can
-be `'binary'`, `'hex'`, or `'base64'`. Defaults to `'binary'`.
+Devuelve la clave pública Diffie-Hellman en la codificación especificada que puede ser
+`'binary'`, `'hex'`, o `'base64'`. Por defecto `'binary'`.
### diffieHellman.getPrivateKey([encoding])
-Returns the Diffie-Hellman private key in the specified encoding, which can
-be `'binary'`, `'hex'`, or `'base64'`. Defaults to `'binary'`.
+Devuelve la clave privada Diffie-Hellman en la codificación especificada que puede ser
+`'binary'`, `'hex'`, o `'base64'`. Por defecto `'binary'`.
### diffieHellman.setPublicKey(public_key, [encoding])
-Sets the Diffie-Hellman public key. Key encoding can be `'binary'`, `'hex'`,
-or `'base64'`. Defaults to `'binary'`.
+Establece la clave pública Diffie-Hellman en la codificación especificada que puede ser
+`'binary'`, `'hex'`, o `'base64'`. Por defecto `'binary'`.
### diffieHellman.setPrivateKey(public_key, [encoding])
-Sets the Diffie-Hellman private key. Key encoding can be `'binary'`, `'hex'`,
-or `'base64'`. Defaults to `'binary'`.
+Establece la clave privada Diffie-Hellman en la codificación especificada que puede ser
+`'binary'`, `'hex'`, o `'base64'`. Por defecto `'binary'`.
## crypto.getDiffieHellman(group_name)
+Crea un objeto predefinido Diffie-Hellman para el intercambio de claves.
+Los grupos soportados son: `'modp1'`, `'modp2'`, `'modp5'`
+(definidos en el [RFC 2412](http://www.rfc-editor.org/rfc/rfc2412.txt ))
+y `'modp14'`, `'modp15'`, `'modp16'`, `'modp17'`, `'modp18'`
+(definidos en el [RFC 3526](http://www.rfc-editor.org/rfc/rfc3526.txt )).
+El objeto devuelto tiene la misma interfaz que los objetos creados mediante
+
+[crypto.createDiffieHellman()](#crypto.createDiffieHellman), pero no permitirá
+el cambio de claves (mediante
+[diffieHellman.setPublicKey()](#diffieHellman.setPublicKey) por ejemplo).
+La ventaja de usar esta rutina radica en que las partes no tienen que generar ni
+intercambiar el grupo de antemano, ahorrándose ambos tanto tiempo de proceso como de comunicación.
-Creates a predefined Diffie-Hellman key exchange object.
-The supported groups are: `'modp1'`, `'modp2'`, `'modp5'`
-(defined in [RFC 2412](http://www.rfc-editor.org/rfc/rfc2412.txt ))
-and `'modp14'`, `'modp15'`, `'modp16'`, `'modp17'`, `'modp18'`
-(defined in [RFC 3526](http://www.rfc-editor.org/rfc/rfc3526.txt )).
-The returned object mimics the interface of objects created by
-[crypto.createDiffieHellman()](#crypto.createDiffieHellman) above, but
-will not allow to change the keys (with
-[diffieHellman.setPublicKey()](#diffieHellman.setPublicKey) for example).
-The advantage of using this routine is that the parties don't have to
-generate nor exchange group modulus beforehand, saving both processor and
-communication time.
-
-Example (obtaining a shared secret):
+Ejemplo (obteniendo un secreto compartido):
var crypto = require('crypto');
var alice = crypto.getDiffieHellman('modp5');
@@ -331,18 +335,18 @@ Example (obtaining a shared secret):
var alice_secret = alice.computeSecret(bob.getPublicKey(), 'binary', 'hex');
var bob_secret = bob.computeSecret(alice.getPublicKey(), 'binary', 'hex');
- /* alice_secret and bob_secret should be the same */
+ /* alice_secret y bob_secret deben ser iguales */
console.log(alice_secret == bob_secret);
## crypto.pbkdf2(password, salt, iterations, keylen, callback)
-Asynchronous PBKDF2 applies pseudorandom function HMAC-SHA1 to derive
-a key of given length from the given password, salt and iterations.
-The callback gets two arguments `(err, derivedKey)`.
+El (asíncrono) PBKDF2 aplica una función pseudoaleatoria HMAC-SHA1 para derivar una clave, con
+la longitud dada para el `password` suministrado, valor salt e iteraciones.
+El callback recibe dos argumentos `(err, derivedKey)`.
## crypto.randomBytes(size, [callback])
-Generates cryptographically strong pseudo-random data. Usage:
+Genera números pseudoaleatorios. Criptográficamente fuerte. Uso:
// async
crypto.randomBytes(256, function(ex, buf) {
@@ -356,4 +360,4 @@ Generates cryptographically strong pseudo-random data. Usage:
console.log('Have %d bytes of random data: %s', buf.length, buf);
} catch (ex) {
// handle error
- }
+ }

0 comments on commit 91038b9

Please sign in to comment.