Módulo: Mongo::Crypt::Hooks Privado
- Definido en:
- lib/mongo/crypt/hooks.rb
Overview
Este módulo es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado en el futuro.
Un módulo asistente que implementa métodos de criptografía requeridos para los ganchos criptográficos nativos de Ruby. Estos métodos se pasan a FFI como funciones de retorno de C y se llaman desde la librería libmongocrypt.
Resumen del método de clase colapsar
-
.aes(key, iv, input, decrypt: false, moda: :CBC) ⇒ String
privado
Un método de encriptación o desencriptación AES.
-
.hash_sha256(input) ⇒ String
privado
Una función hash criptográfica (SHA-256).
-
.hmac_sha(digest_name, key, input) ⇒ String
privado
Una función HMAC SHA-512 o SHA-256.
-
.random(num_bytes) ⇒ string
privado
Función aleatoria segura criptográfica.
-
.rsaes_pkcs_signature(key, input) ⇒ String
privado
Una función de firma RSASSA-PKCS1-v1_5 con SHA-256.
Detalles del método de clase
.aes(key, iv, input, decrypt: false, moda: :CBC) ⇒ String
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Un método de encriptación o desencriptación AES.
40 41 42 43 44 45 46 47 48 49 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 40 def aes(llave, iv, entrada, descifrar: false, moda: Loja: CBC) cifrado = OpenSSL::Cifrado::AES.Nuevo(256, moda) descifrar ? cifrado.descifrar : cifrado.cifrado cifrado.llave = llave cifrado.iv = iv cifrado.Relleno = 0 cifrado.update(entrada) end |
.hash_sha256(input) ⇒ String
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Una función hash criptográfica (SHA-256)
85 86 87 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 85 def hash_sha256(entrada) Resumen::SHA2.Nuevo(256).digest(entrada) end |
.hmac_sha(digest_name, key, input) ⇒ String
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Una función HMAC SHA-512 o SHA-256
73 74 75 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 73 def hmac_sha(digest_name, llave, entrada) OpenSSL::HMAC.digest(digest_name, llave, entrada) end |
.random(num_bytes) ⇒ String
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Función criptográficamente segura de generación aleatoria
59 60 61 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 59 def aleatorio(num_bytes) SecureRandom.random_bytes(num_bytes) end |
.rsaes_pkcs_signature(clave, input) ⇒ String
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Una función de firma RSASSA-PKCS1-v1_5 con SHA-256.
96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 96 def firma_rsaes_pkcs(llave, entrada) private_key = si BSON::Entorno.jruby? # JRuby no puede leer el formato DER, primero necesitamos convertir la clave a PEM. key_pem = [ '-----BEGIN llave privada-----', Base64.strict_encode64(Base64.descodificar64(llave)).escáner(/.{1,64}/), '-----FIN DE LA CLAVE PRIVADA-----', ].unirse("\n") OpenSSL::PKey::RSA.Nuevo(key_pem) else OpenSSL::PKey.Lea(Base64.descodificar64(llave)) end private_key.Firma(OpenSSL::Resumen.Nuevo('SHA256'), entrada) end |