8296143: CertAttrSet's set/get mechanism is not type-safe

Reviewed-by: mullan
This commit is contained in:
Weijun Wang 2022-11-08 22:35:29 +00:00
parent d04d6566b0
commit 671f84bd86
66 changed files with 643 additions and 2902 deletions

View file

@ -51,18 +51,9 @@ import sun.security.util.*;
* @see CertAttrSet
*/
public class SubjectKeyIdentifierExtension extends Extension
implements CertAttrSet<String> {
/**
* Identifier for this attribute, to be used with the
* get, set, delete methods of Certificate, x509 type.
*/
public static final String IDENT =
"x509.info.extensions.SubjectKeyIdentifier";
/**
* Attribute names.
*/
implements CertAttrSet {
public static final String NAME = "SubjectKeyIdentifier";
public static final String KEY_ID = "key_id";
// Private data member
private KeyIdentifier id;
@ -133,42 +124,15 @@ implements CertAttrSet<String> {
super.encode(out);
}
/**
* Set the attribute value.
*/
public void set(String name, Object obj) throws IOException {
if (name.equalsIgnoreCase(KEY_ID)) {
if (!(obj instanceof KeyIdentifier)) {
throw new IOException("Attribute value should be of" +
" type KeyIdentifier.");
}
id = (KeyIdentifier)obj;
} else {
throw new IOException("Attribute name not recognized by " +
"CertAttrSet:SubjectKeyIdentifierExtension.");
}
encodeThis();
public KeyIdentifier getKeyIdentifier() {
return id;
}
/**
* Get the attribute value.
*/
public KeyIdentifier get(String name) throws IOException {
if (name.equalsIgnoreCase(KEY_ID)) {
return (id);
} else {
throw new IOException("Attribute name not recognized by " +
"CertAttrSet:SubjectKeyIdentifierExtension.");
}
}
/**
* Return the name of this attribute.
* Return the name of this extension.
*/
@Override
public String getName() {
return (NAME);
return NAME;
}
}