RFR: 8297065: DerOutputStream operations should not throw IOExceptions
Mark Powers
mpowers at openjdk.org
Wed Nov 23 04:22:58 UTC 2022
On Wed, 23 Nov 2022 03:55:11 GMT, Mark Powers <mpowers at openjdk.org> wrote:
>> This is mostly cleanup. Everything around `DerOutputStream` no longer throws an `IOException`. This includes:
>>
>> - Remove unnecessary `throws IOException` in code and spec
>> - Remove `catch (IOException ioe)` blocks. If new exception is thrown, remove further `throws` in code and spec
>> - More classes implementing `DerEncoder` if they have a `encode(DerOutputStream)` method
>> - Modify `write(bytes)` to `writeBytes(bytes)` to avoid IOE
>> - Some unused methods removed
>> - `DerOutputStream` is final
>>
>> The only actual changes (still trivial) are:
>> - Since `PKCS7::encodeSignedData(OutputStream out)` is removed, its usages in `PKCS7::constructToken` and `TsaSigner::createResponse` (in test) are modified to use another method with a `DerOutputStream` argument.
>> - In PKCS8Key, since `getEncodedInternal` never returns non-null, remove null check on result
>> - Since `DerOutputStream` is final, no need to clone bytes in `encode` of `X509CertImpl` and `X509CRLImpl`.
>
> src/java.base/share/classes/sun/security/x509/IssuingDistributionPointExtension.java line 121:
>
>> 119: boolean hasOnlyUserCerts, boolean hasOnlyCACerts,
>> 120: boolean hasOnlyAttributeCerts, boolean isIndirectCRL)
>> 121: throws IOException {
>
> Don't you need `throws IllegalArgumentException`?
Maybe not - it's a runtime exception and those are special.
-------------
PR: https://git.openjdk.org/jdk/pull/11302
More information about the security-dev
mailing list