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 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(clave, iv, entrada, descifrar: falso, modo::CBC) ⇒ Cadena
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(nombre_de_resumen, clave, entrada) ⇒ Cadena
privado
Una función HMAC SHA-512 o SHA-256.
-
.aleatorio(num_bytes) ⇒ Cadena
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 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 encriptación o desencriptación AES.
43 44 45 46 47 48 49 50 51 52 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 43 def aes(llave, iv, entrada, descifrar: false, moda: Loja: CBC) cifrado = OpenSSL::Cifrar::AES.Nuevo(256, moda) descifrar ? cifrado.descifrar : cifrado.cifrado cifrado.llave = llave cifrado.iv = iv cifrado.Relleno = 0 cifrado = 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(digest_name, key, input) ⇒ String
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, llave, entrada) OpenSSL::HMAC.digerir(nombre_del_complemento, llave, entrada) end |
.random(num_bytes) ⇒ String
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 criptográficamente segura de generación aleatoria
62 63 64 |
# Archivo 'lib/mongo/crypt/hooks.rb', línea 62 def aleatorio(num_bytes) SecureRandom.random_bytes(num_bytes) end |
.rsaes_pkcs_signature(clave, input) ⇒ String
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 de firma RSASSA-PKCS1-v1_5 con 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(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 PRIVATE KEY-----", Base64.strict_encode64(Base64.descodificar64(llave)).escáner(/.{1,64}/), "-----END PRIVATE KEY-----", ].unirse("\n") OpenSSL::PKey::RSA.Nuevo(key_pem) else OpenSSL::PKey.Lea(Base64.descodificar64(llave)) end private_key.Firma(OpenSSL::Resumen::SHA256.Nuevo, entrada) end |