コード例 #1
0
        public BsonDocument DecryptCommand(IKmsCredentials credentials, IMongoDatabase db, BsonDocument doc)
        {
            CryptOptions options = new CryptOptions(credentials);

            using (var cryptClient = CryptClientFactory.Create(options))
                using (var context = cryptClient.StartDecryptionContext(BsonUtil.ToBytes(doc)))
                {
                    return(ProcessState(context, db, null));
                }
        }
コード例 #2
0
        public BsonDocument EncryptCommand(IKmsCredentials credentials, IMongoCollection <BsonDocument> coll, BsonDocument cmd)
        {
            CryptOptions options = new CryptOptions(credentials);

            using (var cryptClient = CryptClientFactory.Create(options))
                using (var context = cryptClient.StartEncryptionContext(coll.Database.DatabaseNamespace.DatabaseName, command: BsonUtil.ToBytes(cmd)))
                {
                    return(ProcessState(context, coll.Database, cmd));
                }
        }
コード例 #3
0
        public Guid GenerateKey(IKmsCredentials credentials, IKmsKeyId kmsKeyId)
        {
            CryptOptions options = new CryptOptions(credentials);

            BsonDocument key = null;

            using (var cryptClient = CryptClientFactory.Create(options))
                using (var context = cryptClient.StartCreateDataKeyContext(kmsKeyId))
                {
                    key = ProcessState(context, _keyVault.Database, null);
                }

            _keyVault.InsertOne(key);
            Guid g = key["_id"].AsGuid;

            return(g);
        }
コード例 #4
0
 public CryptOptions(IKmsCredentials kmsCredentials, byte[] schema)
 {
     KmsCredentials = kmsCredentials;
     Schema         = schema;
 }
コード例 #5
0
 public CryptOptions(IKmsCredentials kmsCredentials)
 {
     KmsCredentials = kmsCredentials;
 }