モジュール: Mongo::Crypt::Hooks Private

定義:
build/ruby-Driver-v 2.19 /lib/mongo/crypt/hooks.rb

Overview

このモジュールはプライベート API の一部です。 このモジュールは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ネイティブ Ruby 暗号化フックに必要な暗号化メソッドを実装するヘルパー モジュール。 これらのメソッドは C コールバックとして FFI に渡され、libmongocrypt ライブラリから呼び出されます。

クラスメソッドの概要を折りたたむ

クラスメソッドの詳細

aes (key, IPv, input, Decrypt: false, Mode: :CBC) = string

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

AES 暗号化または復号化メソッド。

パラメーター:

  • キー ( string )

    32バイトの AES 暗号化のキー

  • iv ( string )

    The 16バイトの AES IV

  • 入力 ( string )

    暗号化/復号化するデータ

  • 解読 true | false (デフォルトはfalse

    この方法が復号化されているかどうか。 デフォルトは false です。つまり、メソッドはデフォルトで暗号化暗号を作成します

  • モード 記号 (デフォルトは:CBC

    AES モードの操作

次の値を返します。

  • ( string )

    出力

次の値が発生します。

  • 例外

    暗号化中に発生した例外は、 呼び出し元に伝達されます。



43
44
45
46
47
48
49
50
51
52
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/hooks.rb', 行43

デフォルト aes(キー, iv, 入力, 解読: false, モード: :CBC)
  暗号 = OpenSSL::暗号::AES.新着情報(256, モード)

  解読 ? 暗号.解読 : 暗号.暗号化
  暗号.キー = キー
  暗号.iv = iv
  暗号.パディング = 0

  暗号化された = 暗号.update(入力)
end

hash_sha 256 (入力) = string

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

暗号化ハッシュ(SHA- 256 )関数

パラメーター:

  • 入力 ( string )

    ハッシュされるデータ

次の値を返します。

  • string

次の値が発生します。

  • 例外

    暗号化中に発生した例外は、 呼び出し元に伝達されます。



88
89
90
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/hooks.rb', 行88

デフォルト hassh_sha 256(入力)
  ダイジェスト::SHA 2.新着情報(256).ダイジェスト(入力)
end

hmac_sha (Digest_name, キー, 入力) = string

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

HMAC SHA- 512または SHA- 256関数

パラメーター:

  • Digest_name ( string )

    ダイジェストの名前。 SHA 256または SHA 512

  • キー ( string )

    32バイトの AES 暗号化のキー

  • 入力 ( string )

    タグ付けするデータ

次の値を返します。

  • string

次の値が発生します。

  • 例外

    暗号化中に発生した例外は、 呼び出し元に伝達されます。



76
77
78
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/hooks.rb', 行76

デフォルト hmac_sha(Digest_name, キー, 入力)
  OpenSSL::HMAC.ダイジェスト(Digest_name, キー, 入力)
end

ランダム(num_bytes)= string

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ランダム関数を保護する暗号化

パラメーター:

  • num_bytes (整数)

    要求されたランダムなバイト数

次の値を返します。

  • string

次の値が発生します。

  • 例外

    暗号化中に発生した例外は、 呼び出し元に伝達されます。



62
63
64
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/hooks.rb', 行62

デフォルト ランダム(num_bytes)
  SecureRange.ランダム_バイト(num_bytes)
end

r saes_pkcs_signature (キー、入力)= string

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

SHA- 256署名関数を持つ RSA-PKCS 1 -v 1 _ 5 。

パラメーター:

  • キー ( string )

    Python 形式の PKCS# 8秘密キーは、基本64でエンコードされます。

  • 入力 ( string )

    署名されるデータ。

次の値を返します。

  • ( string )

    署名。



99
100
101
102
103
104
105
106
107
108
109
110
111
112
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/hooks.rb', 行99

デフォルト r saes_pkcs_signature(キー, 入力)
  private_key = 場合 BSON::environment.jruby?
    #JRuby は クエリ形式を読み取れないため、まずキーを PEM に変換する必要があります。
    key_pem = [
      " -----BEGIN Private KEYに従ってください",
      base64.strict_encode 64(base64.デコード64(キー)).スキャン(/ .{1 ,64} /),
      " ------END Private KEY------ ",
    ].join(" \n ")
    OpenSSL::PKey::RSA.新着情報(key_pem)
  else
    OpenSSL::PKey.読み取り(base64.デコード64(キー))
  end
  private_key.記号(OpenSSL::ダイジェスト::SHA256.新着情報, 入力)
end