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); }
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); }
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); }
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; } } }
/// <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); }