...
1description: getKey
2
3schemaVersion: "1.8"
4
5runOnRequirements:
6 - csfle: true
7
8createEntities:
9 - client:
10 id: &client0 client0
11 observeEvents:
12 - commandStartedEvent
13 - clientEncryption:
14 id: &clientEncryption0 clientEncryption0
15 clientEncryptionOpts:
16 keyVaultClient: *client0
17 keyVaultNamespace: keyvault.datakeys
18 kmsProviders:
19 local: { key: { $$placeholder: 1 } }
20 - database:
21 id: &database0 database0
22 client: *client0
23 databaseName: &database0Name keyvault
24 - collection:
25 id: &collection0 collection0
26 database: *database0
27 collectionName: &collection0Name datakeys
28
29initialData:
30 - databaseName: *database0Name
31 collectionName: *collection0Name
32 documents:
33 - &aws_key_doc
34 _id: &aws_key_id { $binary: { base64: YXdzYXdzYXdzYXdzYXdzYQ==, subType: "04" } }
35 keyAltNames: ["aws_key"]
36 keyMaterial: { $binary: { base64: AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gFXJqbF0Fy872MD7xl56D/2AAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDO7HPisPUlGzaio9vgIBEIB7/Qow46PMh/8JbEUbdXgTGhLfXPE+KIVW7T8s6YEMlGiRvMu7TV0QCIUJlSHPKZxzlJ2iwuz5yXeOag+EdY+eIQ0RKrsJ3b8UTisZYzGjfzZnxUKLzLoeXremtRCm3x47wCuHKd1dhh6FBbYt5TL2tDaj+vL2GBrKat2L, subType: "00" } }
37 creationDate: { $date: { $numberLong: "1641024000000" } }
38 updateDate: { $date: { $numberLong: "1641024000000" } }
39 status: 1
40 masterKey:
41 provider: aws
42 key: arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0
43 region: us-east-1
44 - &local_key_doc
45 _id: &local_key_id { $binary: { base64: bG9jYWxrZXlsb2NhbGtleQ==, subType: "04" } }
46 keyAltNames: ["local_key"]
47 keyMaterial: { $binary: { base64: ABKBldDEoDW323yejOnIRk6YQmlD9d3eQthd16scKL75nz2LjNL9fgPDZWrFFOlqlhMCFaSrNJfGrFUjYk5JFDO7soG5Syb50k1niJoKg4ilsj0L4mpimFUtTpOr2nzZOeQtvAksEXc7gsFgq8gV7t/U3lsaXPY7I0t42DfSE8EGlPdxRjFdHnxh+OR8h7U9b8Qs5K5UuhgyeyxaBZ1Hgw==, subType: "00" } }
48 creationDate: { $date: { $numberLong: "1641024000000" } }
49 updateDate: { $date: { $numberLong: "1641024000000" } }
50 status: 1
51 masterKey:
52 provider: local
53
54tests:
55 - description: get non-existent data key
56 operations:
57 - name: getKey
58 object: *clientEncryption0
59 arguments:
60 # *aws_key_id with first three letters replaced with 'A' (value: "3awsawsawsawsa").
61 id: &non_existent_id { $binary: { base64: AAAzYXdzYXdzYXdzYXdzYQ==, subType: "04" } }
62 expectResult: { $$unsetOrMatches: null }
63 expectEvents:
64 - client: *client0
65 events:
66 - commandStartedEvent:
67 databaseName: *database0Name
68 command:
69 find: *collection0Name
70 filter: { _id: *non_existent_id }
71 readConcern: { level: majority }
72
73 - description: get existing AWS data key
74 operations:
75 - name: getKey
76 object: *clientEncryption0
77 arguments:
78 id: *aws_key_id
79 expectResult: *aws_key_doc
80 expectEvents:
81 - client: *client0
82 events:
83 - commandStartedEvent:
84 databaseName: *database0Name
85 command:
86 find: *collection0Name
87 filter: { _id: *aws_key_id }
88 readConcern: { level: majority }
89
90 - description: get existing local data key
91 operations:
92 - name: getKey
93 object: *clientEncryption0
94 arguments:
95 id: *local_key_id
96 expectResult: *local_key_doc
97 expectEvents:
98 - client: *client0
99 events:
100 - commandStartedEvent:
101 databaseName: *database0Name
102 command:
103 find: *collection0Name
104 filter: { _id: *local_key_id }
105 readConcern: { level: majority }
View as plain text