mongo 2.18.0.beta1 → 2.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/mongo/bulk_write.rb +8 -2
  4. data/lib/mongo/client.rb +19 -5
  5. data/lib/mongo/client_encryption.rb +86 -4
  6. data/lib/mongo/cluster.rb +6 -4
  7. data/lib/mongo/collection/view/aggregation.rb +3 -0
  8. data/lib/mongo/collection/view/change_stream.rb +9 -0
  9. data/lib/mongo/collection/view/iterable.rb +1 -0
  10. data/lib/mongo/collection/view/readable.rb +11 -3
  11. data/lib/mongo/collection.rb +9 -1
  12. data/lib/mongo/config.rb +11 -0
  13. data/lib/mongo/crypt/auto_encrypter.rb +49 -21
  14. data/lib/mongo/crypt/binding.rb +73 -48
  15. data/lib/mongo/crypt/data_key_context.rb +6 -1
  16. data/lib/mongo/crypt/encryption_io.rb +66 -0
  17. data/lib/mongo/crypt/explicit_encrypter.rb +116 -5
  18. data/lib/mongo/crypt/explicit_encryption_context.rb +3 -8
  19. data/lib/mongo/crypt/handle.rb +26 -8
  20. data/lib/mongo/crypt/kms/aws.rb +11 -3
  21. data/lib/mongo/crypt/kms/azure.rb +14 -6
  22. data/lib/mongo/crypt/kms/gcp.rb +12 -5
  23. data/lib/mongo/crypt/kms/kmip.rb +15 -9
  24. data/lib/mongo/crypt/kms/local.rb +9 -1
  25. data/lib/mongo/crypt/kms/master_key_document.rb +1 -1
  26. data/lib/mongo/crypt/rewrap_many_data_key_context.rb +46 -0
  27. data/lib/mongo/crypt/rewrap_many_data_key_result.rb +37 -0
  28. data/lib/mongo/crypt/status.rb +8 -2
  29. data/lib/mongo/crypt.rb +2 -0
  30. data/lib/mongo/database.rb +10 -27
  31. data/lib/mongo/error/missing_file_chunk.rb +8 -2
  32. data/lib/mongo/grid/stream/read.rb +6 -0
  33. data/lib/mongo/index/view.rb +1 -0
  34. data/lib/mongo/operation/create/op_msg.rb +1 -13
  35. data/lib/mongo/operation/distinct/op_msg.rb +4 -1
  36. data/lib/mongo/protocol/msg.rb +0 -16
  37. data/lib/mongo/server/connection_pool.rb +5 -4
  38. data/lib/mongo/server/monitor/connection.rb +10 -4
  39. data/lib/mongo/server/monitor.rb +4 -0
  40. data/lib/mongo/server/push_monitor.rb +4 -0
  41. data/lib/mongo/version.rb +1 -1
  42. data/lib/mongo.rb +2 -0
  43. data/spec/README.md +14 -0
  44. data/spec/integration/change_stream_spec.rb +1 -1
  45. data/spec/integration/client_construction_spec.rb +73 -7
  46. data/spec/integration/client_side_encryption/auto_encryption_command_monitoring_spec.rb +165 -164
  47. data/spec/integration/client_side_encryption/decryption_events_prose_spec.rb +158 -0
  48. data/spec/integration/client_side_encryption/explicit_queryable_encryption_spec.rb +5 -5
  49. data/spec/integration/client_side_encryption/kms_tls_options_spec.rb +50 -8
  50. data/spec/integration/client_side_encryption/unique_index_on_key_alt_names_prose_spec.rb +85 -0
  51. data/spec/integration/ocsp_verifier_spec.rb +1 -1
  52. data/spec/integration/reconnect_spec.rb +2 -0
  53. data/spec/integration/sdam_events_spec.rb +40 -0
  54. data/spec/integration/srv_monitoring_spec.rb +1 -0
  55. data/spec/integration/srv_spec.rb +1 -0
  56. data/spec/lite_spec_helper.rb +5 -4
  57. data/spec/mongo/bulk_write_spec.rb +13 -0
  58. data/spec/mongo/client_construction_spec.rb +45 -2
  59. data/spec/mongo/client_encryption_spec.rb +0 -12
  60. data/spec/mongo/client_spec.rb +1 -1
  61. data/spec/mongo/collection/view/aggregation_spec.rb +119 -0
  62. data/spec/mongo/collection/view/readable_spec.rb +630 -5
  63. data/spec/mongo/collection_spec.rb +32 -0
  64. data/spec/mongo/crypt/auto_encrypter_spec.rb +110 -0
  65. data/spec/mongo/crypt/binding/context_spec.rb +3 -35
  66. data/spec/mongo/crypt/data_key_context_spec.rb +1 -1
  67. data/spec/mongo/crypt/explicit_encryption_context_spec.rb +8 -3
  68. data/spec/mongo/crypt/handle_spec.rb +39 -3
  69. data/spec/mongo/crypt/kms/credentials_spec.rb +0 -47
  70. data/spec/mongo/index/view_spec.rb +56 -0
  71. data/spec/mongo/operation/create/op_msg_spec.rb +0 -42
  72. data/spec/mongo/server/connection_pool_spec.rb +26 -4
  73. data/spec/mongo/socket/ssl_spec.rb +3 -3
  74. data/spec/runners/crud/requirement.rb +6 -1
  75. data/spec/runners/crud/test.rb +1 -1
  76. data/spec/runners/transactions/spec.rb +2 -2
  77. data/spec/runners/transactions/test.rb +4 -20
  78. data/spec/runners/transactions.rb +2 -2
  79. data/spec/runners/unified/assertions.rb +32 -2
  80. data/spec/runners/unified/change_stream_operations.rb +3 -0
  81. data/spec/runners/unified/client_side_encryption_operations.rb +83 -0
  82. data/spec/runners/unified/crud_operations.rb +17 -2
  83. data/spec/runners/unified/ddl_operations.rb +27 -2
  84. data/spec/runners/unified/grid_fs_operations.rb +21 -0
  85. data/spec/runners/unified/test.rb +59 -1
  86. data/spec/shared/lib/mrss/docker_runner.rb +2 -0
  87. data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
  88. data/spec/shared/lib/mrss/lite_constraints.rb +10 -2
  89. data/spec/shared/shlib/set_env.sh +3 -0
  90. data/spec/solo/clean_exit_spec.rb +5 -0
  91. data/spec/spec_tests/client_side_encryption_spec.rb +1 -1
  92. data/spec/spec_tests/client_side_encryption_unified_spec.rb +16 -0
  93. data/spec/spec_tests/data/change_streams_unified/change-streams-showExpandedEvents.yml +298 -0
  94. data/spec/spec_tests/data/client_side_encryption/create-and-createIndexes.yml +58 -0
  95. data/spec/spec_tests/data/client_side_encryption/fle2-Delete.yml +1 -1
  96. data/spec/spec_tests/data/client_side_encryption/fle2-EncryptedFields-vs-jsonSchema.yml +1 -1
  97. data/spec/spec_tests/data/client_side_encryption/fle2-FindOneAndUpdate.yml +2 -2
  98. data/spec/spec_tests/data/client_side_encryption/fle2-InsertFind-Indexed.yml +1 -1
  99. data/spec/spec_tests/data/client_side_encryption/fle2-Update.yml +2 -2
  100. data/spec/spec_tests/data/client_side_encryption/unified/addKeyAltName.yml +194 -0
  101. data/spec/spec_tests/data/client_side_encryption/unified/createDataKey-kms_providers-invalid.yml +67 -0
  102. data/spec/spec_tests/data/client_side_encryption/unified/createDataKey.yml +309 -0
  103. data/spec/spec_tests/data/client_side_encryption/unified/deleteKey.yml +159 -0
  104. data/spec/spec_tests/data/client_side_encryption/unified/getKey.yml +105 -0
  105. data/spec/spec_tests/data/client_side_encryption/unified/getKeyByAltName.yml +104 -0
  106. data/spec/spec_tests/data/client_side_encryption/unified/getKeys.yml +122 -0
  107. data/spec/spec_tests/data/client_side_encryption/unified/removeKeyAltName.yml +157 -0
  108. data/spec/spec_tests/data/client_side_encryption/unified/rewrapManyDataKey-decrypt_failure.yml +69 -0
  109. data/spec/spec_tests/data/client_side_encryption/unified/rewrapManyDataKey-encrypt_failure.yml +122 -0
  110. data/spec/spec_tests/data/client_side_encryption/unified/rewrapManyDataKey.yml +432 -0
  111. data/spec/spec_tests/data/client_side_encryption/validatorAndPartialFieldExpression.yml +166 -0
  112. data/spec/spec_tests/data/command_monitoring_unified/bulkWrite.yml +68 -0
  113. data/spec/spec_tests/data/command_monitoring_unified/command.yml +50 -0
  114. data/spec/spec_tests/data/command_monitoring_unified/deleteMany.yml +79 -0
  115. data/spec/spec_tests/data/command_monitoring_unified/deleteOne.yml +79 -0
  116. data/spec/spec_tests/data/command_monitoring_unified/find.yml +254 -0
  117. data/spec/spec_tests/data/command_monitoring_unified/insertMany.yml +79 -0
  118. data/spec/spec_tests/data/command_monitoring_unified/insertOne.yml +77 -0
  119. data/spec/spec_tests/data/command_monitoring_unified/unacknowledgedBulkWrite.yml +55 -0
  120. data/spec/spec_tests/data/command_monitoring_unified/updateMany.yml +87 -0
  121. data/spec/spec_tests/data/command_monitoring_unified/updateOne.yml +118 -0
  122. data/spec/spec_tests/data/crud_unified/distinct-comment.yml +98 -0
  123. data/spec/spec_tests/data/gridfs_unified/delete.yml +198 -0
  124. data/spec/spec_tests/data/gridfs_unified/download.yml +241 -0
  125. data/spec/spec_tests/data/gridfs_unified/downloadByName.yml +159 -0
  126. data/spec/spec_tests/data/gridfs_unified/upload-disableMD5.yml +92 -0
  127. data/spec/spec_tests/data/gridfs_unified/upload.yml +288 -0
  128. data/spec/spec_tests/gridfs_unified_spec.rb +13 -0
  129. data/spec/stress/connection_pool_timing_spec.rb +2 -2
  130. data/spec/support/background_thread_registry.rb +3 -13
  131. data/spec/support/certificates/atlas-ocsp-ca.crt +40 -47
  132. data/spec/support/certificates/atlas-ocsp.crt +101 -106
  133. data/spec/support/crypt.rb +57 -13
  134. data/spec/support/macros.rb +10 -0
  135. data/spec/support/spec_config.rb +4 -0
  136. data.tar.gz.sig +0 -0
  137. metadata +1271 -1219
  138. metadata.gz.sig +0 -0
  139. data/spec/spec_tests/command_monitoring_spec.rb +0 -71
  140. data/spec/spec_tests/data/command_monitoring/bulkWrite.yml +0 -49
  141. data/spec/spec_tests/data/command_monitoring/command.yml +0 -61
  142. data/spec/spec_tests/data/command_monitoring/deleteMany.yml +0 -55
  143. data/spec/spec_tests/data/command_monitoring/deleteOne.yml +0 -55
  144. data/spec/spec_tests/data/command_monitoring/find.yml +0 -266
  145. data/spec/spec_tests/data/command_monitoring/insertMany.yml +0 -75
  146. data/spec/spec_tests/data/command_monitoring/insertOne.yml +0 -51
  147. data/spec/spec_tests/data/command_monitoring/unacknowledgedBulkWrite.yml +0 -34
  148. data/spec/spec_tests/data/command_monitoring/updateMany.yml +0 -65
  149. data/spec/spec_tests/data/command_monitoring/updateOne.yml +0 -90
@@ -2,42 +2,41 @@ Certificate:
2
2
  Data:
3
3
  Version: 3 (0x2)
4
4
  Serial Number:
5
- 08:dc:93:55:36:6d:c5:92:20:d0:a3:4c:a1:19:ab:2d
5
+ 0e:fb:8b:f4:73:3e:98:df:1d:48:6d:da:d2:08:ca:0d
6
6
  Signature Algorithm: sha256WithRSAEncryption
7
7
  Issuer: C = US, O = DigiCert Inc, CN = DigiCert TLS RSA SHA256 2020 CA1
8
8
  Validity
9
- Not Before: Apr 27 00:00:00 2021 GMT
10
- Not After : May 25 23:59:59 2022 GMT
9
+ Not Before: May 5 00:00:00 2022 GMT
10
+ Not After : Jun 2 23:59:59 2023 GMT
11
11
  Subject: C = US, ST = New York, L = New York, O = "MongoDB, Inc.", CN = *.mongodb-dev.net
12
12
  Subject Public Key Info:
13
13
  Public Key Algorithm: rsaEncryption
14
- RSA Public-Key: (2048 bit)
14
+ Public-Key: (2048 bit)
15
15
  Modulus:
16
- 00:bb:c1:de:f6:08:39:fb:f1:9a:f7:d4:68:6a:d7:
17
- 81:57:0c:09:b9:8f:39:e5:c8:b1:53:52:d8:64:0c:
18
- e1:92:9c:ca:3f:92:46:86:5c:e2:8f:20:cf:f9:99:
19
- d0:95:46:51:7e:55:f7:3d:62:1b:a4:e7:79:31:0c:
20
- 39:9d:23:bc:00:6f:2f:3d:5f:d4:88:1b:d0:9c:42:
21
- 26:45:1b:11:b2:d7:45:f5:aa:2f:07:43:da:bc:ab:
22
- 43:cb:0b:12:59:41:24:c3:bb:86:7f:2d:1a:c9:26:
23
- d7:6b:25:57:48:9c:88:1a:20:fb:65:01:71:27:0c:
24
- 24:a7:23:40:dc:b6:69:4d:55:ef:14:ba:bd:05:b6:
25
- cf:5e:b0:c2:f6:56:bc:88:e9:81:04:94:80:9b:cf:
26
- ee:f3:15:05:79:61:41:21:4a:a1:23:29:66:90:e9:
27
- d7:03:1e:4f:30:bd:81:46:e4:9b:ab:1f:f8:02:5c:
28
- 58:98:48:c5:50:16:16:80:0d:25:be:53:27:aa:8b:
29
- ca:6c:d5:d9:89:50:2b:38:a6:55:fe:c3:0a:6a:db:
30
- 9c:1e:23:a2:84:93:4f:d1:a1:3d:00:48:ab:c1:2a:
31
- 3c:0a:59:a8:5b:d4:88:32:54:a9:de:88:de:1a:82:
32
- ef:61:fa:90:fa:42:3d:1d:a8:98:d6:3b:a5:d4:eb:
33
- c6:cf
16
+ 00:b3:40:eb:4a:26:af:07:a3:ea:58:c7:3b:50:5c:
17
+ 94:47:5a:0a:9d:86:b7:bb:03:9c:5a:4a:23:5e:7c:
18
+ b1:cd:fc:4f:56:d5:05:4e:ce:f8:f2:b1:55:09:13:
19
+ ff:cc:e6:a4:fb:41:2e:0c:8f:1a:a3:ea:4b:a3:51:
20
+ c6:f7:91:e6:47:49:ae:3b:94:df:68:80:68:2a:62:
21
+ a2:d1:42:5b:89:c1:70:2b:1c:a7:84:df:98:86:1a:
22
+ 69:eb:88:c4:51:4d:c9:7f:10:90:a0:0a:c5:7c:07:
23
+ 12:9e:c2:94:e1:88:2e:2d:21:94:a4:8a:27:1f:20:
24
+ 1b:6f:14:27:21:0c:4b:6f:72:5b:18:e7:75:7a:90:
25
+ 4c:a8:18:e7:4d:0f:ed:e4:03:f4:10:b7:65:23:9f:
26
+ b2:5f:0d:eb:85:3c:b0:34:d3:9a:2c:80:85:2e:53:
27
+ 35:19:44:03:13:b3:df:fb:0d:db:80:6f:12:60:1a:
28
+ b8:d6:25:0d:6d:23:fd:a6:d8:aa:dc:82:73:cc:d2:
29
+ 26:9b:71:50:9a:09:cf:ef:60:ba:d1:22:cb:fb:2f:
30
+ 69:a2:a6:c6:a9:30:77:1c:d7:bc:c2:6e:6d:e6:69:
31
+ 65:f3:91:3d:ee:04:f9:a0:41:5f:50:dc:75:15:4d:
32
+ 15:43:76:35:e9:97:65:7a:d8:3f:00:4d:44:29:7c:
33
+ 5d:25
34
34
  Exponent: 65537 (0x10001)
35
35
  X509v3 extensions:
36
36
  X509v3 Authority Key Identifier:
37
- keyid:B7:6B:A2:EA:A8:AA:84:8C:79:EA:B4:DA:0F:98:B2:C5:95:76:B9:F4
38
-
37
+ B7:6B:A2:EA:A8:AA:84:8C:79:EA:B4:DA:0F:98:B2:C5:95:76:B9:F4
39
38
  X509v3 Subject Key Identifier:
40
- 3D:23:31:1E:EA:1C:8D:8A:09:AA:2D:2A:84:BF:06:31:DE:87:04:01
39
+ 22:7C:2F:C7:F4:D6:75:0E:A1:02:32:21:1A:A6:29:25:46:48:B8:6A
41
40
  X509v3 Subject Alternative Name:
42
41
  DNS:*.mongodb-dev.net, DNS:mongodb-dev.net
43
42
  X509v3 Key Usage: critical
@@ -45,113 +44,109 @@ Certificate:
45
44
  X509v3 Extended Key Usage:
46
45
  TLS Web Server Authentication, TLS Web Client Authentication
47
46
  X509v3 CRL Distribution Points:
48
-
49
47
  Full Name:
50
- URI:http://crl3.digicert.com/DigiCertTLSRSASHA2562020CA1.crl
51
-
48
+ URI:http://crl3.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl
52
49
  Full Name:
53
- URI:http://crl4.digicert.com/DigiCertTLSRSASHA2562020CA1.crl
54
-
50
+ URI:http://crl4.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl
55
51
  X509v3 Certificate Policies:
56
52
  Policy: 2.23.140.1.2.2
57
53
  CPS: http://www.digicert.com/CPS
58
-
59
54
  Authority Information Access:
60
55
  OCSP - URI:http://ocsp.digicert.com
61
- CA Issuers - URI:http://cacerts.digicert.com/DigiCertTLSRSASHA2562020CA1.crt
62
-
63
- X509v3 Basic Constraints: critical
56
+ CA Issuers - URI:http://cacerts.digicert.com/DigiCertTLSRSASHA2562020CA1-1.crt
57
+ X509v3 Basic Constraints:
64
58
  CA:FALSE
65
59
  CT Precertificate SCTs:
66
60
  Signed Certificate Timestamp:
67
61
  Version : v1 (0x0)
68
- Log ID : 29:79:BE:F0:9E:39:39:21:F0:56:73:9F:63:A5:77:E5:
69
- BE:57:7D:9C:60:0A:F8:F9:4D:5D:26:5C:25:5D:C7:84
70
- Timestamp : Apr 27 23:28:05.994 2021 GMT
62
+ Log ID : E8:3E:D0:DA:3E:F5:06:35:32:E7:57:28:BC:89:6B:C9:
63
+ 03:D3:CB:D1:11:6B:EC:EB:69:E1:77:7D:6D:06:BD:6E
64
+ Timestamp : May 5 16:12:54.726 2022 GMT
71
65
  Extensions: none
72
66
  Signature : ecdsa-with-SHA256
73
- 30:45:02:20:42:20:09:2C:F8:4F:9C:4D:70:0C:1D:A6:
74
- 39:A1:EC:20:4B:54:4B:50:5E:B5:B9:71:1F:6B:60:BC:
75
- 65:5B:E7:0F:02:21:00:BA:DE:65:82:26:65:7C:D7:01:
76
- 7C:36:51:71:CF:F7:2C:09:7B:C7:9A:1F:E4:6D:8E:11:
77
- 7E:DB:60:52:BC:82:8B
67
+ 30:45:02:21:00:C4:D8:1A:00:3C:BD:E5:E1:13:B2:5D:
68
+ DA:7F:69:A9:4C:83:AB:CC:C2:00:9F:FB:98:09:44:5F:
69
+ 93:0C:92:CD:F7:02:20:2D:E2:D6:A4:3B:61:06:25:1E:
70
+ 22:2F:5E:2A:D4:76:0D:FE:12:E9:91:65:26:69:25:6C:
71
+ 53:E4:C3:2F:4B:89:AF
78
72
  Signed Certificate Timestamp:
79
73
  Version : v1 (0x0)
80
- Log ID : 22:45:45:07:59:55:24:56:96:3F:A1:2F:F1:F7:6D:86:
81
- E0:23:26:63:AD:C0:4B:7F:5D:C6:83:5C:6E:E2:0F:02
82
- Timestamp : Apr 27 23:28:05.942 2021 GMT
74
+ Log ID : 35:CF:19:1B:BF:B1:6C:57:BF:0F:AD:4C:6D:42:CB:BB:
75
+ B6:27:20:26:51:EA:3F:E1:2A:EF:A8:03:C3:3B:D6:4C
76
+ Timestamp : May 5 16:12:54.786 2022 GMT
83
77
  Extensions: none
84
78
  Signature : ecdsa-with-SHA256
85
- 30:44:02:20:0C:6B:5C:7F:31:B5:24:10:73:23:AF:27:
86
- 20:11:58:9E:40:A6:6A:BB:D8:48:0F:D1:4A:F1:F8:A9:
87
- B0:30:1E:34:02:20:13:04:B5:82:28:59:D7:0B:86:7F:
88
- C6:22:6E:9C:67:FF:F1:A3:9F:BF:54:AB:0D:B8:1A:8E:
89
- 16:D2:F1:8E:37:FF
79
+ 30:45:02:20:46:F0:9E:AE:32:A7:A7:CA:22:C6:64:EE:
80
+ 7F:9F:C6:EA:3C:BE:3B:2F:E2:09:C0:ED:A9:E1:EE:16:
81
+ F9:F1:6C:1E:02:21:00:BD:1A:42:73:A5:CE:E6:8A:CE:
82
+ BC:4C:3E:42:D4:0B:FC:89:3B:D5:1E:29:E8:38:F7:44:
83
+ 5B:22:9A:FA:1D:B3:57
90
84
  Signed Certificate Timestamp:
91
85
  Version : v1 (0x0)
92
- Log ID : 51:A3:B0:F5:FD:01:79:9C:56:6D:B8:37:78:8F:0C:A4:
93
- 7A:CC:1B:27:CB:F7:9E:88:42:9A:0D:FE:D4:8B:05:E5
94
- Timestamp : Apr 27 23:28:06.392 2021 GMT
86
+ Log ID : B7:3E:FB:24:DF:9C:4D:BA:75:F2:39:C5:BA:58:F4:6C:
87
+ 5D:FC:42:CF:7A:9F:35:C4:9E:1D:09:81:25:ED:B4:99
88
+ Timestamp : May 5 16:12:54.779 2022 GMT
95
89
  Extensions: none
96
90
  Signature : ecdsa-with-SHA256
97
- 30:46:02:21:00:D0:FE:FE:CA:E2:72:85:3A:A6:13:D0:
98
- ED:55:8B:67:AF:86:F4:D7:BE:66:67:BB:99:BF:7C:10:
99
- 2D:28:0E:49:C3:02:21:00:BF:FF:BA:B8:4D:D1:B7:6A:
100
- 6B:E9:B3:E5:A6:93:CA:14:37:70:C1:4F:89:89:66:58:
101
- 3F:AA:22:B0:1E:F9:14:DF
91
+ 30:45:02:20:2F:72:9B:CC:88:04:F1:3B:8B:BC:01:85:
92
+ B2:16:B4:AF:4A:CB:45:E8:0B:29:D1:77:6C:2C:56:0C:
93
+ 8D:1C:61:7C:02:21:00:A4:67:AC:08:40:83:82:9E:22:
94
+ 75:3A:92:91:1E:12:23:01:B9:04:3B:A3:60:5F:E8:D1:
95
+ 59:4E:88:DB:C5:DE:DD
102
96
  Signature Algorithm: sha256WithRSAEncryption
103
- 78:e3:4f:d2:0f:56:13:0d:a3:5d:1a:68:d7:64:f5:60:d2:37:
104
- 7e:94:d7:4d:d3:5f:11:27:e8:0b:2c:74:6f:23:08:24:94:ba:
105
- fc:b8:8a:33:3f:99:18:83:cd:4f:14:3a:82:f9:ba:f3:ff:2c:
106
- b1:f5:c9:be:af:fd:16:79:bd:cf:39:ba:5c:47:88:b1:b1:23:
107
- 6b:6d:1c:67:5d:98:52:58:1d:72:ee:7e:c5:4b:e4:03:ca:ba:
108
- 47:bf:89:c5:48:c2:b1:0b:9c:3e:ed:3e:04:19:62:66:4c:c6:
109
- 44:6f:db:33:20:14:b1:df:c1:8f:3a:21:c1:59:0e:f8:70:3c:
110
- fe:e0:ad:77:7b:5d:8c:de:a3:cd:d0:5c:84:36:10:00:42:28:
111
- ee:7c:32:28:4d:41:94:3c:e4:36:7e:e5:d2:b3:d9:6f:f3:f5:
112
- 63:24:3f:9f:c6:64:cc:32:23:7e:fd:00:f4:c3:89:ac:5f:28:
113
- f2:a3:af:a9:21:47:b1:f4:48:7c:79:6d:e7:6e:b8:35:15:ea:
114
- 6d:f2:13:35:8f:56:ea:e6:47:fb:a9:b4:f6:64:ee:b9:e8:07:
115
- 73:de:ef:20:c0:36:a9:10:bf:4a:df:29:90:fb:fc:05:85:f0:
116
- 62:94:7e:74:3a:42:cb:01:3d:ef:65:82:48:b8:87:8e:0e:17:
117
- cb:6c:a0:dc
97
+ Signature Value:
98
+ 33:bb:fa:5f:59:e5:d0:5c:a1:22:4e:73:c8:35:e4:d7:8c:28:
99
+ 67:b2:85:b0:1b:0c:e4:ec:aa:a7:49:09:e7:52:63:e5:8a:51:
100
+ a9:de:b8:35:74:66:0f:66:fa:b4:91:1f:b0:3a:5e:0a:21:0d:
101
+ a2:73:5b:1f:2c:fa:cd:59:72:85:8c:db:95:33:66:64:a2:e7:
102
+ 6f:0d:9e:cf:a7:e3:de:82:7a:24:55:56:f8:b8:c0:95:0d:ba:
103
+ 07:01:fe:ce:35:48:2f:23:2d:29:7b:6b:00:e6:f7:2c:31:6f:
104
+ 9c:67:35:90:f0:65:9f:41:f9:bf:ad:2c:e9:8e:f0:c4:cf:8c:
105
+ 5d:02:c4:8e:22:7f:62:bb:62:21:cf:9d:59:7b:96:4e:c4:7d:
106
+ ca:a2:6f:37:66:34:88:ac:a3:c1:6e:95:ec:e3:3a:07:27:6d:
107
+ 31:b7:38:70:ce:93:42:86:20:3b:f8:d8:f9:ef:a9:9e:43:4f:
108
+ ed:9b:4b:c7:90:5b:d1:9b:16:66:8f:42:11:8a:97:bb:c7:e1:
109
+ b5:67:f5:a1:f4:7b:8b:f0:88:a8:5f:39:83:4c:2e:3d:e9:8f:
110
+ 34:b8:fb:e8:1e:e2:0f:90:02:7c:ad:c7:9e:00:c2:fa:0a:41:
111
+ 43:61:e2:2b:6d:f8:b7:fa:70:71:04:f3:2c:7f:c0:16:7a:6b:
112
+ a1:34:45:c0
118
113
 
119
114
  -----BEGIN CERTIFICATE-----
120
- MIIGwTCCBamgAwIBAgIQCNyTVTZtxZIg0KNMoRmrLTANBgkqhkiG9w0BAQsFADBP
115
+ MIIGxDCCBaygAwIBAgIQDvuL9HM+mN8dSG3a0gjKDTANBgkqhkiG9w0BAQsFADBP
121
116
  MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMSkwJwYDVQQDEyBE
122
- aWdpQ2VydCBUTFMgUlNBIFNIQTI1NiAyMDIwIENBMTAeFw0yMTA0MjcwMDAwMDBa
123
- Fw0yMjA1MjUyMzU5NTlaMGcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9y
117
+ aWdpQ2VydCBUTFMgUlNBIFNIQTI1NiAyMDIwIENBMTAeFw0yMjA1MDUwMDAwMDBa
118
+ Fw0yMzA2MDIyMzU5NTlaMGcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9y
124
119
  azERMA8GA1UEBxMITmV3IFlvcmsxFjAUBgNVBAoTDU1vbmdvREIsIEluYy4xGjAY
125
120
  BgNVBAMMESoubW9uZ29kYi1kZXYubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
126
- MIIBCgKCAQEAu8He9gg5+/Ga99RoateBVwwJuY855cixU1LYZAzhkpzKP5JGhlzi
127
- jyDP+ZnQlUZRflX3PWIbpOd5MQw5nSO8AG8vPV/UiBvQnEImRRsRstdF9aovB0Pa
128
- vKtDywsSWUEkw7uGfy0aySbXayVXSJyIGiD7ZQFxJwwkpyNA3LZpTVXvFLq9BbbP
129
- XrDC9la8iOmBBJSAm8/u8xUFeWFBIUqhIylmkOnXAx5PML2BRuSbqx/4AlxYmEjF
130
- UBYWgA0lvlMnqovKbNXZiVArOKZV/sMKatucHiOihJNP0aE9AEirwSo8ClmoW9SI
131
- MlSp3ojeGoLvYfqQ+kI9HaiY1jul1OvGzwIDAQABo4IDfzCCA3swHwYDVR0jBBgw
132
- FoAUt2ui6qiqhIx56rTaD5iyxZV2ufQwHQYDVR0OBBYEFD0jMR7qHI2KCaotKoS/
133
- BjHehwQBMC0GA1UdEQQmMCSCESoubW9uZ29kYi1kZXYubmV0gg9tb25nb2RiLWRl
121
+ MIIBCgKCAQEAs0DrSiavB6PqWMc7UFyUR1oKnYa3uwOcWkojXnyxzfxPVtUFTs74
122
+ 8rFVCRP/zOak+0EuDI8ao+pLo1HG95HmR0muO5TfaIBoKmKi0UJbicFwKxynhN+Y
123
+ hhpp64jEUU3JfxCQoArFfAcSnsKU4YguLSGUpIonHyAbbxQnIQxLb3JbGOd1epBM
124
+ qBjnTQ/t5AP0ELdlI5+yXw3rhTywNNOaLICFLlM1GUQDE7Pf+w3bgG8SYBq41iUN
125
+ bSP9ptiq3IJzzNImm3FQmgnP72C60SLL+y9poqbGqTB3HNe8wm5t5mll85E97gT5
126
+ oEFfUNx1FU0VQ3Y16Zdletg/AE1EKXxdJQIDAQABo4IDgjCCA34wHwYDVR0jBBgw
127
+ FoAUt2ui6qiqhIx56rTaD5iyxZV2ufQwHQYDVR0OBBYEFCJ8L8f01nUOoQIyIRqm
128
+ KSVGSLhqMC0GA1UdEQQmMCSCESoubW9uZ29kYi1kZXYubmV0gg9tb25nb2RiLWRl
134
129
  di5uZXQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
135
- BQcDAjCBiwYDVR0fBIGDMIGAMD6gPKA6hjhodHRwOi8vY3JsMy5kaWdpY2VydC5j
136
- b20vRGlnaUNlcnRUTFNSU0FTSEEyNTYyMDIwQ0ExLmNybDA+oDygOoY4aHR0cDov
137
- L2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VExTUlNBU0hBMjU2MjAyMENBMS5j
138
- cmwwPgYDVR0gBDcwNTAzBgZngQwBAgIwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3
139
- dy5kaWdpY2VydC5jb20vQ1BTMH0GCCsGAQUFBwEBBHEwbzAkBggrBgEFBQcwAYYY
140
- aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEcGCCsGAQUFBzAChjtodHRwOi8vY2Fj
141
- ZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUTFNSU0FTSEEyNTYyMDIwQ0ExLmNy
142
- dDAMBgNVHRMBAf8EAjAAMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgApeb7w
143
- njk5IfBWc59jpXflvld9nGAK+PlNXSZcJV3HhAAAAXkVqUdqAAAEAwBHMEUCIEIg
144
- CSz4T5xNcAwdpjmh7CBLVEtQXrW5cR9rYLxlW+cPAiEAut5lgiZlfNcBfDZRcc/3
145
- LAl7x5of5G2OEX7bYFK8gosAdQAiRUUHWVUkVpY/oS/x922G4CMmY63AS39dxoNc
146
- buIPAgAAAXkVqUc2AAAEAwBGMEQCIAxrXH8xtSQQcyOvJyARWJ5Apmq72EgP0Urx
147
- +KmwMB40AiATBLWCKFnXC4Z/xiJunGf/8aOfv1SrDbgajhbS8Y43/wB3AFGjsPX9
148
- AXmcVm24N3iPDKR6zBsny/eeiEKaDf7UiwXlAAABeRWpSPgAAAQDAEgwRgIhAND+
149
- /sricoU6phPQ7VWLZ6+G9Ne+Zme7mb98EC0oDknDAiEAv/+6uE3Rt2pr6bPlppPK
150
- FDdwwU+JiWZYP6oisB75FN8wDQYJKoZIhvcNAQELBQADggEBAHjjT9IPVhMNo10a
151
- aNdk9WDSN36U103TXxEn6AssdG8jCCSUuvy4ijM/mRiDzU8UOoL5uvP/LLH1yb6v
152
- /RZ5vc85ulxHiLGxI2ttHGddmFJYHXLufsVL5APKuke/icVIwrELnD7tPgQZYmZM
153
- xkRv2zMgFLHfwY86IcFZDvhwPP7grXd7XYzeo83QXIQ2EABCKO58MihNQZQ85DZ+
154
- 5dKz2W/z9WMkP5/GZMwyI379APTDiaxfKPKjr6khR7H0SHx5beduuDUV6m3yEzWP
155
- VurmR/uptPZk7rnoB3Pe7yDANqkQv0rfKZD7/AWF8GKUfnQ6QssBPe9lgki4h44O
156
- F8tsoNw=
130
+ BQcDAjCBjwYDVR0fBIGHMIGEMECgPqA8hjpodHRwOi8vY3JsMy5kaWdpY2VydC5j
131
+ b20vRGlnaUNlcnRUTFNSU0FTSEEyNTYyMDIwQ0ExLTQuY3JsMECgPqA8hjpodHRw
132
+ Oi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRUTFNSU0FTSEEyNTYyMDIwQ0Ex
133
+ LTQuY3JsMD4GA1UdIAQ3MDUwMwYGZ4EMAQICMCkwJwYIKwYBBQUHAgEWG2h0dHA6
134
+ Ly93d3cuZGlnaWNlcnQuY29tL0NQUzB/BggrBgEFBQcBAQRzMHEwJAYIKwYBBQUH
135
+ MAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBJBggrBgEFBQcwAoY9aHR0cDov
136
+ L2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VExTUlNBU0hBMjU2MjAyMENB
137
+ MS0xLmNydDAJBgNVHRMEAjAAMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDo
138
+ PtDaPvUGNTLnVyi8iWvJA9PL0RFr7Otp4Xd9bQa9bgAAAYCU/uZGAAAEAwBHMEUC
139
+ IQDE2BoAPL3l4ROyXdp/aalMg6vMwgCf+5gJRF+TDJLN9wIgLeLWpDthBiUeIi9e
140
+ KtR2Df4S6ZFlJmklbFPkwy9Lia8AdgA1zxkbv7FsV78PrUxtQsu7ticgJlHqP+Eq
141
+ 76gDwzvWTAAAAYCU/uaCAAAEAwBHMEUCIEbwnq4yp6fKIsZk7n+fxuo8vjsv4gnA
142
+ 7anh7hb58WweAiEAvRpCc6XO5orOvEw+QtQL/Ik71R4p6Dj3RFsimvods1cAdgC3
143
+ Pvsk35xNunXyOcW6WPRsXfxCz3qfNcSeHQmBJe20mQAAAYCU/uZ7AAAEAwBHMEUC
144
+ IC9ym8yIBPE7i7wBhbIWtK9Ky0XoCynRd2wsVgyNHGF8AiEApGesCECDgp4idTqS
145
+ kR4SIwG5BDujYF/o0VlOiNvF3t0wDQYJKoZIhvcNAQELBQADggEBADO7+l9Z5dBc
146
+ oSJOc8g15NeMKGeyhbAbDOTsqqdJCedSY+WKUaneuDV0Zg9m+rSRH7A6XgohDaJz
147
+ Wx8s+s1ZcoWM25UzZmSi528Nns+n496CeiRVVvi4wJUNugcB/s41SC8jLSl7awDm
148
+ 9ywxb5xnNZDwZZ9B+b+tLOmO8MTPjF0CxI4if2K7YiHPnVl7lk7EfcqibzdmNIis
149
+ o8FulezjOgcnbTG3OHDOk0KGIDv42PnvqZ5DT+2bS8eQW9GbFmaPQhGKl7vH4bVn
150
+ 9aH0e4vwiKhfOYNMLj3pjzS4++ge4g+QAnytx54AwvoKQUNh4itt+Lf6cHEE8yx/
151
+ wBZ6a6E0RcA=
157
152
  -----END CERTIFICATE-----
@@ -16,15 +16,19 @@
16
16
  # limitations under the License.
17
17
 
18
18
  module Crypt
19
+ LOCAL_MASTER_KEY_B64 = 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3' +
20
+ 'YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk'.freeze
21
+
22
+ LOCAL_MASTER_KEY = Base64.decode64(LOCAL_MASTER_KEY_B64)
23
+
19
24
  # For all FLE-related tests
20
25
  shared_context 'define shared FLE helpers' do
21
26
  # 96-byte binary string, base64-encoded local master key
22
27
  let(:local_master_key_b64) do
23
- "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3" +
24
- "YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk"
28
+ Crypt::LOCAL_MASTER_KEY_B64
25
29
  end
26
30
 
27
- let(:local_master_key) { Base64.decode64(local_master_key_b64) }
31
+ let(:local_master_key) { Crypt::LOCAL_MASTER_KEY }
28
32
 
29
33
  # Data key id as a binary string
30
34
  let(:key_id) { data_key['_id'] }
@@ -128,8 +132,12 @@ module Crypt
128
132
  BSON::ExtJSON.parse(File.read('spec/support/crypt/data_keys/key_document_local.json'))
129
133
  end
130
134
 
135
+ let(:schema_map_file_path) do
136
+ 'spec/support/crypt/schema_maps/schema_map_local.json'
137
+ end
138
+
131
139
  let(:schema_map) do
132
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_local.json'))
140
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
133
141
  end
134
142
  let(:data_key_options) { {} }
135
143
 
@@ -142,8 +150,12 @@ module Crypt
142
150
  shared_context 'with local kms_providers and key alt names' do
143
151
  include_context 'with local kms_providers'
144
152
 
153
+ let(:schema_map_file_path) do
154
+ 'spec/support/crypt/schema_maps/schema_map_local_key_alt_names.json'
155
+ end
156
+
145
157
  let(:schema_map) do
146
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_local_key_alt_names.json'))
158
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
147
159
  end
148
160
  end
149
161
 
@@ -174,8 +186,12 @@ module Crypt
174
186
  BSON::ExtJSON.parse(File.read('spec/support/crypt/data_keys/key_document_aws.json'))
175
187
  end
176
188
 
189
+ let(:schema_map_file_path) do
190
+ 'spec/support/crypt/schema_maps/schema_map_aws.json'
191
+ end
192
+
177
193
  let(:schema_map) do
178
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_aws.json'))
194
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
179
195
  end
180
196
 
181
197
  let(:data_key_options) do
@@ -202,8 +218,12 @@ module Crypt
202
218
  shared_context 'with AWS kms_providers and key alt names' do
203
219
  include_context 'with AWS kms_providers'
204
220
 
221
+ let(:schema_map_file_path) do
222
+ 'spec/support/crypt/schema_maps/schema_map_aws_key_alt_names.json'
223
+ end
224
+
205
225
  let(:schema_map) do
206
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_aws_key_alt_names.json'))
226
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
207
227
  end
208
228
  end
209
229
 
@@ -233,8 +253,12 @@ module Crypt
233
253
  BSON::ExtJSON.parse(File.read('spec/support/crypt/data_keys/key_document_azure.json'))
234
254
  end
235
255
 
256
+ let(:schema_map_file_path) do
257
+ 'spec/support/crypt/schema_maps/schema_map_azure.json'
258
+ end
259
+
236
260
  let(:schema_map) do
237
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_azure.json'))
261
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
238
262
  end
239
263
 
240
264
  let(:data_key_options) do
@@ -254,8 +278,12 @@ module Crypt
254
278
  shared_context 'with Azure kms_providers and key alt names' do
255
279
  include_context 'with Azure kms_providers'
256
280
 
281
+ let(:schema_map_file_path) do
282
+ 'spec/support/crypt/schema_maps/schema_map_azure_key_alt_names.json'
283
+ end
284
+
257
285
  let(:schema_map) do
258
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_azure_key_alt_names.json'))
286
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
259
287
  end
260
288
  end
261
289
 
@@ -289,8 +317,12 @@ module Crypt
289
317
  BSON::ExtJSON.parse(File.read('spec/support/crypt/data_keys/key_document_gcp.json'))
290
318
  end
291
319
 
320
+ let(:schema_map_file_path) do
321
+ 'spec/support/crypt/schema_maps/schema_map_gcp.json'
322
+ end
323
+
292
324
  let(:schema_map) do
293
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_gcp.json'))
325
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
294
326
  end
295
327
 
296
328
  let(:data_key_options) do
@@ -312,8 +344,12 @@ module Crypt
312
344
  shared_context 'with GCP kms_providers and key alt names' do
313
345
  include_context 'with GCP kms_providers'
314
346
 
347
+ let(:schema_map_file_path) do
348
+ 'spec/support/crypt/schema_maps/schema_map_gcp_key_alt_names.json'
349
+ end
350
+
315
351
  let(:schema_map) do
316
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_gcp_key_alt_names.json'))
352
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
317
353
  end
318
354
  end
319
355
 
@@ -331,8 +367,12 @@ module Crypt
331
367
  BSON::ExtJSON.parse(File.read('spec/support/crypt/data_keys/key_document_kmip.json'))
332
368
  end
333
369
 
370
+ let(:schema_map_file_path) do
371
+ 'spec/support/crypt/schema_maps/schema_map_kmip.json'
372
+ end
373
+
334
374
  let(:schema_map) do
335
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_kmip.json'))
375
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
336
376
  end
337
377
 
338
378
  let(:data_key_options) do
@@ -351,8 +391,12 @@ module Crypt
351
391
  shared_context 'with KMIP kms_providers and key alt names' do
352
392
  include_context 'with KMIP kms_providers'
353
393
 
394
+ let(:schema_map_file_path) do
395
+ 'spec/support/crypt/schema_maps/schema_map_kmip_key_alt_names.json'
396
+ end
397
+
354
398
  let(:schema_map) do
355
- BSON::ExtJSON.parse(File.read('spec/support/crypt/schema_maps/schema_map_kmip_key_alt_names.json'))
399
+ BSON::ExtJSON.parse(File.read(schema_map_file_path))
356
400
  end
357
401
  end
358
402
  end
@@ -14,5 +14,15 @@ module Mongo
14
14
  Mongo.send("#{key}=", existing)
15
15
  end
16
16
  end
17
+
18
+ def with_config_values(key, *values, &block)
19
+ values.each do |value|
20
+ context "when #{key} is #{value}" do
21
+ config_override key, value
22
+
23
+ class_exec(value, &block)
24
+ end
25
+ end
26
+ end
17
27
  end
18
28
  end
@@ -126,6 +126,10 @@ class SpecConfig
126
126
  !!(RbConfig::CONFIG['host_os'].downcase =~ /\bdarwin/)
127
127
  end
128
128
 
129
+ def windows?
130
+ ENV['OS'] == 'Windows_NT' && !RUBY_PLATFORM.match?(/cygwin/)
131
+ end
132
+
129
133
  def platform
130
134
  RUBY_PLATFORM
131
135
  end
data.tar.gz.sig CHANGED
Binary file