On Thu, 22 May 2025 12:02:28 GMT, Krushna948 <d...@openjdk.org> wrote:

>> Anthony Scarpino has updated the pull request incrementally with three 
>> additional commits since the last revision:
>> 
>>  - comments
>>  - comments
>>  - fix EKS error after JEP 513
>
> src/java.base/share/classes/java/security/PEMDecoder.java line 90:
> 
>> 88:  * decoded into a {@code PEMRecord} by specifying {@code 
>> PEMRecord.class}.
>> 89:  * If the Class parameter doesn't match the PEM content, an
>> 90:  * {@code IllegalArgumentException} will be thrown.
> 
> Looks a Typo, it supposed to be ClassCastException?

Thanks.. I can follow up on this with post integration.

> src/java.base/share/classes/java/security/PEMDecoder.java line 485:
> 
>> 483:      * Any errors using the {@code Provider} will occur during decoding.
>> 484:      *
>> 485:      * <p>If {@code provider} is {@code null}, a new instance is 
>> returned with
> 
> May this needs to be updated as below @throws NullPointerException if {@code 
> provider} is null

yes, this could use some clarification post-integration

> src/java.base/share/classes/java/security/PEMRecord.java line 56:
> 
>> 54:  * @param type the type identifier in the PEM header without PEM syntax 
>> labels.
>> 55:  *           For a public key, {@code type} would be "PUBLIC KEY".
>> 56:  * @param pem any data between the PEM header and footer.
> 
> Here 'pem' - any data between the PEM header and footer.
> But the constructor description below for both the constructors 
> "pem the Base64-encoded data encapsulated by the PEM header and  footer"
> 
> Observation
> If I pass the data between PEM header and  footer, the PEMRecord created 
> successfully.
> If I include Header and Footer
> For eg  as pem string,
> 
> "-----BEGIN PUBLIC KEY-----\n" +
>             
> "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGRGrflwdiorIrC02pmr0jAKXI\n" +
>             
> "qxbBHxMUslLg8bjJiJCbanW7g7j7fR3RwGVU0cWh8rsQ/y4U7Yy0gBAsWCrr/TDS\n" +
>             
> "Xf3RWiZbQiQo6brZFiFZ5WgWgTpuzxDKpzLjyXCe17FXgbgEYscRPB/Rff6q2OS4\n" +
>             "H6stY3fHctzmU1HmUQIDAQAB\n" +
>             "-----END PUBLIC KEY-----";
> 
> PEMRecord creation throws java.lang.IllegalArgumentException: Illegal footer: 
> 
> Looks some inconsistency in documentation/ behavior

The code requires a end of line character.  Perhaps the documentation can be 
clarified later

> src/java.base/share/classes/java/security/PEMRecord.java line 111:
> 
>> 109:      * {@code null}.
>> 110:      */
>> 111:     public PEMRecord(String type, String pem) {
> 
> Observed that PEMRecord.pem returns a string with out Header and footer and 
> removing all the new line characters from input, do we need to specify that 
> the result string filters out the new line characters?

The class level javadoc  specifies what the `type` should contain only the type 
identifier like "PUBLIC KEY".  We also say there is no validation on the values 
entered.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/17543#discussion_r2112388261
PR Review Comment: https://git.openjdk.org/jdk/pull/17543#discussion_r2112390001
PR Review Comment: https://git.openjdk.org/jdk/pull/17543#discussion_r2112390527
PR Review Comment: https://git.openjdk.org/jdk/pull/17543#discussion_r2112398916

Reply via email to