mongo 2.18.0.beta1 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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