FileDocCategorySizeDatePackage
PublicKeyInfo.javaAPI DocphoneME MR2 API (J2ME)8937Wed May 02 18:00:26 BST 2007com.sun.midp.publickeystore

PublicKeyInfo

public class PublicKeyInfo extends Object
The information that needs to be stored for a public key.

Fields Summary
public static final byte
OWNER_TAG
Used to tag the owner field in a serialized key.
public static final byte
NOT_BEFORE_TAG
Used to tag the notBefore field in a serialized key.
public static final byte
NOT_AFTER_TAG
Used to tag the notAfter field in a serialized key.
public static final byte
MODULUS_TAG
Used to tag the modulus field in a serialized key.
public static final byte
EXPONENT_TAG
Used to tag the exponent field in a serialized key.
public static final byte
DOMAIN_TAG
Used to get the domain field in a serialized key.
public static final byte
ENABLED_TAG
Used to get the enable field in a serialized key.
private String
owner
Distinguished Name of the owner.
private long
notBefore
Start of the key's validity period in milliseconds since Jan 1, 1970.
private long
notAfter
End of the key's validity period in milliseconds since Jan 1, 1970.
private byte[]
modulus
RSA modulus for the public key.
private byte[]
exponent
RSA exponent for the public key.
private String
domain
Name of the security domain.
boolean
enabled
If this key can be used for authorization.
Constructors Summary
public PublicKeyInfo(String owner, long notBefore, long notAfter, byte[] modulus, byte[] exponent, String domain, boolean enabled)
Constructs a PublicKeyInfo object with the specified attributes. This constructor is only used by PublicKeyInfo and its subclasses.

param
owner distinguished name of the owner
param
notBefore start of validity period expressed in milliseconds since midnight Jan 1, 1970 UTC
param
notAfter end of validity period expressed as above
param
modulus modulus associated with the RSA Public Key
param
exponent exponent associated with the RSA Public Key
param
domain security domain of any application authorized with the corresponding private key, this can be set to null, allowing it to be set later
param
enabled if true this key is enable, if false the user has disabled this key for authorization

        this.owner = owner;
        this.notBefore = notBefore;
        this.notAfter = notAfter;
        this.modulus = modulus;
        this.exponent = exponent;
        this.domain = domain;
        this.enabled = enabled;
    
public PublicKeyInfo(String owner, long notBefore, long notAfter, byte[] modulus, byte[] exponent, String domain)
Constructs a PublicKeyInfo object with the specified attributes. This constructor is only used by PublicKeyInfo and its subclasses. Defaults enabled to true.

param
owner distinguished name of the owner
param
notBefore start of validity period expressed in milliseconds since midnight Jan 1, 1970 UTC
param
notAfter end of validity period expressed as above
param
modulus modulus associated with the RSA Public Key
param
exponent exponent associated with the RSA Public Key
param
domain security domain of any application authorized with the corresponding private key, this can be set to null, allowing it to be set later


        this(owner, notBefore, notAfter, modulus, exponent, domain, true);
    
Methods Summary
public java.lang.StringgetDomain()
Gets name of the security domain for this key.

return
the security domain
see
#setDomain

        if (domain == null) {
            return "untrusted";
        }

        return domain;
    
public byte[]getExponent()
Gets RSA exponent of the public key.

return
the exponent

        byte[] retVal = new byte[exponent.length];

	System.arraycopy(exponent, 0, retVal, 0, exponent.length);
        return retVal;
    
static com.sun.midp.publickeystore.PublicKeyInfogetKeyFromStorage(InputStorage storage)
Deserializes a public key from storage.

param
storage what to get the key from
return
a full populated PublicKeyInfo object
exception
IOException if the key storage was corrupted


                                     
        
              
        byte[] tag;
        Object value;
        String owner;
        long notBefore;
        long notAfter;
        byte[] modulus;
        byte[] exponent;
        String domain;
        boolean enabled;
        
        tag = new byte[1];

        value = storage.readValue(tag);
        if (value == null) {
            // no more keys
            return null;
        }

        if (tag[0] != OWNER_TAG) {
            throw new IOException("public key storage corrupted");
        }

        owner = (String)value;

        value = storage.readValue(tag);
        if (tag[0] != NOT_BEFORE_TAG) {
            throw new IOException("public key storage corrupted");
        }

        notBefore = ((Long)value).longValue();

        value = storage.readValue(tag);
        if (tag[0] != NOT_AFTER_TAG) {
            throw new IOException("public key storage corrupted");
        }

        notAfter = ((Long)value).longValue();

        value = storage.readValue(tag);
        if (tag[0] != MODULUS_TAG) {
            throw new IOException("public key storage corrupted");
        }

        modulus = (byte[])value;

        value = storage.readValue(tag);
        if (tag[0] != EXPONENT_TAG) {
            throw new IOException("public key storage corrupted");
        }

        exponent = (byte[])value;

        value = storage.readValue(tag);
        if (tag[0] != DOMAIN_TAG) {
            throw new IOException("public key storage corrupted");
        }

        domain = (String)value;

        value = storage.readValue(tag);
        if (tag[0] != ENABLED_TAG) {
            throw new IOException("public key storage corrupted");
        }

        enabled = ((Boolean)value).booleanValue();

        return new PublicKeyInfo(owner, notBefore, notAfter,
                                 modulus, exponent, domain, enabled);
    
public byte[]getModulus()
Gets RSA modulus of the public key.

return
the modulus

        byte[] retVal = new byte[modulus.length];

	System.arraycopy(modulus, 0, retVal, 0, modulus.length);
        return retVal;
    
public longgetNotAfter()
Gets the end of the key's validity period in milliseconds since Jan 1, 1970.

return
end of a key's validity period.

        return notAfter;
    
public longgetNotBefore()
Gets the start of the key's validity period in milliseconds since Jan 1, 1970.

return
start of a key's validity period.

        return notBefore;
    
public java.lang.StringgetOwner()
Gets the distinguished name of the key's owner.

return
name of key's owner

        return owner;
    
public booleanisEnabled()
Gets the enabled status of this key.

return
true if this key is enabled

        return enabled;
    
public voidsetDomain(java.lang.String domain)
Sets the name of the security domain for this key if it does not have a domain.

param
domain security domain
see
#getDomain

        if (domain != null) {
            return;
        }

        this.domain = domain;