Módulo: Mongo::Crypt::Hooks Privado
- Definido en:
- lib/mongo/crypt/hooks.rb
Overview
Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Un módulo auxiliar que implementa los métodos de criptografía necesarios para los ganchos de criptografía nativos de Ruby. Estos métodos se pasan a FFI como devoluciones de llamada en C y se invocan desde la biblioteca libmongocrypt.
Colapso delresumen del método de clase
-
.aes(clave, iv, entrada, descifrar: falso, modo::CBC) ⇒ Cadena
privada
Un método de cifrado o descifrado AES.
-
.hash_sha256(entrada) ⇒ Cadena
privada
Una función hash criptográfica (SHA-256).
-
.hmac_sha(nombre_de_resumen, clave, entrada) ⇒ Cadena
privada
Una función HMAC SHA-512 o SHA-256.
-
.aleatorio(num_bytes) ⇒ Cadena
privada
Función aleatoria segura criptográfica.
-
.rsaes_pkcs_signature(clave, entrada) ⇒ Cadena
privada
Una función RSASSA-PKCS1-v1_5 con firma SHA-256.
Detalles del método de clase
.aes(clave, iv, entrada, descifrar: falso, modo::CBC) ⇒ Cadena
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Un método de cifrado o descifrado AES.
43 44 45 46 47 48 49 50 51 52 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 43 def aes(clave, iv, entrada, descifrar: false, modo: :CBC) cifrado = OpenSSL::Cifrar::AES.Nuevo(256, moda) desencriptar ? cifrado.desencriptar : cifrado.cifrar cifrado.clave = clave cifrado.iv = iv cifrado.relleno = 0 cifrada = cifrado.update(entrada) end |
.hash_sha256(entrada) ⇒ Cadena
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Una función hash criptográfica (SHA-256)
88 89 90 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 88 def hash_sha256(entrada) Resumen::SHA2.Nuevo(256).digerir(entrada) end |
.hmac_sha(nombre_de_resumen, clave, entrada) ⇒ Cadena
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Una función HMAC SHA-512 o SHA-256
76 77 78 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 76 def hmac_sha(nombre_del_complemento, clave, entrada) OpenSSL::HMAC.digerir(nombre_del_complemento, clave, entrada) end |
.aleatorio(num_bytes) ⇒ Cadena
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Función aleatoria segura de criptomonedas
62 63 64 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 62 def aleatorio(num_bytes) SecureRandom.bytes aleatorios(num_bytes) end |
.rsaes_pkcs_signature(clave, entrada) ⇒ Cadena
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Una función RSASSA-PKCS1-v1_5 con firma SHA-256.
99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 99 def firma rsaes_pkcs(clave, entrada) private_key = Si BSON::Entorno.jruby? # JRuby no puede leer el formato DER, primero necesitamos convertir la clave a PEM. key_pem = [ "-----BEGIN PRIVATE KEY-----", Base64.codificación estricta64(Base64.decodificar64(clave)).exploración(/.{1,64}/), "-----END PRIVATE KEY-----", ].Join("\n") OpenSSL::PKey::RSA.Nuevo(key_pem) else OpenSSL::PKey.Lea(Base64.decodificar64(clave)) end private_key.Firma(OpenSSL::Resumen::SHA256.Nuevo, entrada) end |