diff --git a/src/main/java/com/amazonaws/encryptionsdk/model/CiphertextHeaders.java b/src/main/java/com/amazonaws/encryptionsdk/model/CiphertextHeaders.java index c992f9f10..d40c234bf 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/model/CiphertextHeaders.java +++ b/src/main/java/com/amazonaws/encryptionsdk/model/CiphertextHeaders.java @@ -519,15 +519,36 @@ private int parseComplete(final byte[] b, final int off) throws ParseException { return 0; } + /** + * Deserialize the provided bytes starting at the specified offset to + * construct an instance of this class. Uses the default value for + * maxEncryptedDataKeys, which results in no limit. + * + *
+ * This method parses the provided bytes for the individual fields in this + * class. This methods also supports partial parsing where not all the bytes + * required for parsing the fields successfully are available. + * + * @param b + * the byte array to deserialize. + * @param off + * the offset in the byte array to use for deserialization. + * @return + * the number of bytes consumed in deserialization. + */ + public int deserialize(final byte[] b, final int off) throws ParseException { + return deserialize(b, off, NO_MAX_ENCRYPTED_DATA_KEYS); + } + /** * Deserialize the provided bytes starting at the specified offset to * construct an instance of this class. - * + * *
* This method parses the provided bytes for the individual fields in this
* class. This methods also supports partial parsing where not all the bytes
* required for parsing the fields successfully are available.
- *
+ *
* @param b
* the byte array to deserialize.
* @param off
@@ -869,6 +890,16 @@ public void setSuiteData(byte[] suiteData) {
suiteData_ = suiteData.clone();
}
+ /**
+ * Return max encrypted data keys
+ * Package scope for unit testing.
+ *
+ * @return int
+ */
+ int getMaxEncryptedDataKeys() {
+ return maxEncryptedDataKeys_;
+ }
+
private static class PartialParseException extends Exception {
private static final long serialVersionUID = 1L;
final int bytesParsed_;
diff --git a/src/test/java/com/amazonaws/encryptionsdk/model/CiphertextHeadersTest.java b/src/test/java/com/amazonaws/encryptionsdk/model/CiphertextHeadersTest.java
index ce2338e0a..fd3117c3c 100644
--- a/src/test/java/com/amazonaws/encryptionsdk/model/CiphertextHeadersTest.java
+++ b/src/test/java/com/amazonaws/encryptionsdk/model/CiphertextHeadersTest.java
@@ -51,6 +51,8 @@ public class CiphertextHeadersTest {
@Test
public void serializeDeserialize() {
+ int maxEncryptedDataKeys = 42;
+
Map