Skip to content

Commit 2c816ce

Browse files
authored
Applied arch board feedback for Key Vault Keys (Azure#26910)
* Applied all arch board feedback but that about not using String for ISO8601 durations. * Fixed Javadoc issue. * Fixed Javadoc, Checkstyle and Spotbugs issues. * Applied PR feedback. * Removed `RandomBytes` and changed the return type of all `getRandomBytes()` operations to `byte[]`. * Added links to a Wikipedia article on ISO 8601 durations where applicable for APIs and samples related to key rotation. * Fixed issue with how requests were structured when a KeyRotationPolicy was sent. * Updated test recordings.
1 parent ab3c15f commit 2c816ce

File tree

91 files changed

+3443
-3389
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+3443
-3389
lines changed

eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -577,6 +577,7 @@
577577
<Class name="com.azure.security.keyvault.keys.cryptography.SecretKey"/>
578578
<Class name="com.azure.security.keyvault.keys.models.KeyVaultKey"/>
579579
<Class name="com.azure.security.keyvault.keys.models.KeyProperties"/>
580+
<Class name="com.azure.security.keyvault.keys.models.KeyRotationPolicy"/>
580581
<Class name="com.azure.security.keyvault.certificates.models.DeletedCertificate"/>
581582
<Class name="com.azure.security.keyvault.certificates.models.Certificate"/>
582583
<Class name="com.azure.security.keyvault.certificates.models.CertificateProperties"/>

sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyAsyncClient.java

Lines changed: 58 additions & 118 deletions
Large diffs are not rendered by default.

sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyClient.java

Lines changed: 50 additions & 47 deletions
Large diffs are not rendered by default.

sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyExportRequestParameters.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyReleaseParameters.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class KeyReleaseParameters {
1616
* The attestation assertion for the target of the key release.
1717
*/
1818
@JsonProperty(value = "target", required = true)
19-
private String target;
19+
private String targetAttestationToken;
2020

2121
/*
2222
* A client provided nonce for freshness.
@@ -35,19 +35,19 @@ class KeyReleaseParameters {
3535
*
3636
* @return The target value.
3737
*/
38-
public String getTarget() {
39-
return this.target;
38+
public String getTargetAttestationToken() {
39+
return this.targetAttestationToken;
4040
}
4141

4242
/**
4343
* Set the attestation assertion for the target of the key release.
4444
*
45-
* @param target The attestation assertion for the target of the key release.
45+
* @param targetAttestationToken The attestation assertion for the target of the key release.
4646
*
4747
* @return The updated {@link KeyReleaseParameters} object.
4848
*/
49-
public KeyReleaseParameters setTarget(String target) {
50-
this.target = target;
49+
public KeyReleaseParameters setTargetAttestationToken(String targetAttestationToken) {
50+
this.targetAttestationToken = targetAttestationToken;
5151

5252
return this;
5353
}

sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyRequestParameters.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ public KeyReleasePolicy getReleasePolicy() {
231231
* Set the policy rules under which the key can be exported.
232232
*
233233
* @param releasePolicy The policy rules to set.
234-
*
234+
*
235235
* @return The updated {@link KeyRequestParameters} object.
236236
*/
237237
public KeyRequestParameters setReleasePolicy(KeyReleasePolicy releasePolicy) {

sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@
2626
import com.azure.core.util.Context;
2727
import com.azure.security.keyvault.keys.implementation.models.DeletedKeyPage;
2828
import com.azure.security.keyvault.keys.implementation.models.KeyPropertiesPage;
29-
import com.azure.security.keyvault.keys.implementation.models.KeyRotationPolicy;
3029
import com.azure.security.keyvault.keys.implementation.models.GetRandomBytesRequest;
3130
import com.azure.security.keyvault.keys.implementation.models.RandomBytes;
3231
import com.azure.security.keyvault.keys.models.DeletedKey;
3332
import com.azure.security.keyvault.keys.models.ReleaseKeyResult;
3433
import com.azure.security.keyvault.keys.models.KeyVaultKey;
3534
import com.azure.security.keyvault.keys.models.KeyProperties;
35+
import com.azure.security.keyvault.keys.models.KeyRotationPolicy;
3636
import reactor.core.publisher.Mono;
3737

3838
/**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.security.keyvault.keys.implementation;
5+
6+
import com.azure.core.util.BinaryData;
7+
import com.fasterxml.jackson.core.JsonParser;
8+
import com.fasterxml.jackson.databind.DeserializationContext;
9+
import com.fasterxml.jackson.databind.JsonDeserializer;
10+
11+
import java.io.IOException;
12+
13+
public class BinaryDataJsonDeserializer extends JsonDeserializer<BinaryData> {
14+
@Override
15+
public BinaryData deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
16+
throws IOException {
17+
18+
String text = jsonParser.getText();
19+
20+
if (text != null) {
21+
return BinaryData.fromString(text);
22+
}
23+
24+
return null;
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.security.keyvault.keys.implementation;
5+
6+
import com.azure.core.util.BinaryData;
7+
import com.fasterxml.jackson.core.JsonGenerator;
8+
import com.fasterxml.jackson.databind.JsonSerializer;
9+
import com.fasterxml.jackson.databind.SerializerProvider;
10+
11+
import java.io.IOException;
12+
import java.util.Base64;
13+
14+
public class BinaryDataJsonSerializer extends JsonSerializer<BinaryData> {
15+
@Override
16+
public void serialize(BinaryData value, JsonGenerator jsonGenerator, SerializerProvider provider)
17+
throws IOException {
18+
String text;
19+
20+
if (value == null) {
21+
text = null;
22+
} else {
23+
byte[] bytes = value.toBytes();
24+
25+
if (bytes == null) {
26+
text = null;
27+
} else if (bytes.length == 0) {
28+
text = "";
29+
} else {
30+
text = Base64.getUrlEncoder().withoutPadding().encodeToString(bytes);
31+
}
32+
}
33+
34+
jsonGenerator.writeString(text);
35+
}
36+
}

sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/KeyRotationPolicy.java

Lines changed: 0 additions & 77 deletions
This file was deleted.

0 commit comments

Comments
 (0)