コード例 #1
0
        private static async Task <string> CreateKey(KmsManagementClient kmsManagementClient, string compartmentId)
        {
            logger.Info("Creating Key");

            KeyShape keyShape = new KeyShape
            {
                Algorithm = KeyShape.AlgorithmEnum.Aes,
                Length    = DefaultKeyLength
            };
            CreateKeyDetails createKeyDetails = new CreateKeyDetails
            {
                KeyShape      = keyShape,
                CompartmentId = compartmentId,
                DisplayName   = "DotNet-SDK-Key-1",
                FreeformTags  = GetSampleFreeformTagData()
            };
            CreateKeyRequest createKeyRequest = new CreateKeyRequest
            {
                CreateKeyDetails = createKeyDetails
            };
            CreateKeyResponse createKeyResponse = await kmsManagementClient.CreateKey(createKeyRequest);

            logger.Info($"Created new key: {createKeyResponse.Key.DisplayName}");
            return(createKeyResponse.Key.Id);
        }
コード例 #2
0
        public static CreateKeyResponse Unmarshall(UnmarshallerContext context)
        {
            CreateKeyResponse createKeyResponse = new CreateKeyResponse();

            createKeyResponse.HttpResponse = context.HttpResponse;
            createKeyResponse.RequestId    = context.StringValue("CreateKey.RequestId");

            CreateKeyResponse.CreateKey_KeyMetadata keyMetadata = new CreateKeyResponse.CreateKey_KeyMetadata();
            keyMetadata.CreationDate       = context.StringValue("CreateKey.KeyMetadata.CreationDate");
            keyMetadata.Description        = context.StringValue("CreateKey.KeyMetadata.Description");
            keyMetadata.KeyId              = context.StringValue("CreateKey.KeyMetadata.KeyId");
            keyMetadata.KeyState           = context.StringValue("CreateKey.KeyMetadata.KeyState");
            keyMetadata.KeyUsage           = context.StringValue("CreateKey.KeyMetadata.KeyUsage");
            keyMetadata.DeleteDate         = context.StringValue("CreateKey.KeyMetadata.DeleteDate");
            keyMetadata.Creator            = context.StringValue("CreateKey.KeyMetadata.Creator");
            keyMetadata.Arn                = context.StringValue("CreateKey.KeyMetadata.Arn");
            keyMetadata.Origin             = context.StringValue("CreateKey.KeyMetadata.Origin");
            keyMetadata.MaterialExpireTime = context.StringValue("CreateKey.KeyMetadata.MaterialExpireTime");
            keyMetadata.ProtectionLevel    = context.StringValue("CreateKey.KeyMetadata.ProtectionLevel");
            keyMetadata.PrimaryKeyVersion  = context.StringValue("CreateKey.KeyMetadata.PrimaryKeyVersion");
            keyMetadata.LastRotationDate   = context.StringValue("CreateKey.KeyMetadata.LastRotationDate");
            keyMetadata.AutomaticRotation  = context.StringValue("CreateKey.KeyMetadata.AutomaticRotation");
            keyMetadata.RotationInterval   = context.StringValue("CreateKey.KeyMetadata.RotationInterval");
            keyMetadata.NextRotationDate   = context.StringValue("CreateKey.KeyMetadata.NextRotationDate");
            createKeyResponse.KeyMetadata  = keyMetadata;

            return(createKeyResponse);
        }
コード例 #3
0
        static async Task <CreateKeyResponse> MyCreateKeyAsync(string regionName)
        {
            RegionEndpoint region = RegionEndpoint.GetBySystemName(regionName);

            AmazonKeyManagementServiceClient kmsClient = new AmazonKeyManagementServiceClient(region);

            CreateKeyResponse response = await kmsClient.CreateKeyAsync(new CreateKeyRequest());

            return(response);
        }
        public static CreateKeyResponse Unmarshall(UnmarshallerContext context)
        {
            CreateKeyResponse createKeyResponse = new CreateKeyResponse();

            createKeyResponse.HttpResponse = context.HttpResponse;
            createKeyResponse.RequestId    = context.StringValue("CreateKey.RequestId");

            CreateKeyResponse.KeyMetadata_ keyMetadata = new CreateKeyResponse.KeyMetadata_();
            keyMetadata.CreationDate      = context.StringValue("CreateKey.KeyMetadata.CreationDate");
            keyMetadata.Description       = context.StringValue("CreateKey.KeyMetadata.Description");
            keyMetadata.KeyId             = context.StringValue("CreateKey.KeyMetadata.KeyId");
            keyMetadata.KeyState          = context.StringValue("CreateKey.KeyMetadata.KeyState");
            keyMetadata.KeyUsage          = context.StringValue("CreateKey.KeyMetadata.KeyUsage");
            createKeyResponse.KeyMetadata = keyMetadata;

            return(createKeyResponse);
        }
コード例 #5
0
        private static string GetOrCreateKMSKey(AmazonS3Client s3Client,
                                                AmazonKeyManagementServiceClient kmsClient, string bucketName)
        {
            try
            {
                // look for the s3 object that tells us the KMS key has been created
                GetObjectRequest getObjectRequest = new GetObjectRequest()
                {
                    BucketName = bucketName,
                    Key        = KeyKMSKeyId
                };

                using (var getObjectResponse = s3Client.GetObject(getObjectRequest))
                    using (var stream = getObjectResponse.ResponseStream)
                        using (var reader = new StreamReader(stream))
                        {
                            return(reader.ReadToEnd());
                        }
            }
            catch (AmazonS3Exception e)
            {
                if (NoSuchKeyErrorCode.Equals(e.ErrorCode))
                {
                    //create the KMS key
                    CreateKeyRequest createKeyRequest = new CreateKeyRequest();
                    createKeyRequest.Description = "Key used for Java/.NET S3 encryption client interoperability tests.";
                    CreateKeyResponse createKeyResponse = kmsClient.CreateKey(createKeyRequest);
                    String            kmsKeyId          = createKeyResponse.KeyMetadata.KeyId;

                    //save the KMS key ID into s3
                    PutObjectRequest putObjectRequest = new PutObjectRequest
                    {
                        BucketName  = bucketName,
                        Key         = KeyKMSKeyId,
                        ContentBody = kmsKeyId
                    };
                    s3Client.PutObject(putObjectRequest);
                    return(kmsKeyId);
                }
                else
                {
                    throw;
                }
            }
        }
コード例 #6
0
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            CreateKeyResponse response = new CreateKeyResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("KeyMetadata", targetDepth))
                {
                    var unmarshaller = KeyMetadataUnmarshaller.Instance;
                    response.KeyMetadata = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }