gnu.javax.security.auth

Class Password

Implemented Interfaces:
Destroyable

public final class Password
extends ExpirableObject

Immutible, though destroyable, password class.

Extends ExpirableObject, implementing doDestroy() in which encapsulated char[], and byte[] password fields are cleared (elements set to zero) in order to thwart memory heap snooping.

Field Summary

Fields inherited from class gnu.java.security.util.ExpirableObject

DEFAULT_TIMEOUT

Constructor Summary

Password(byte[] password)
Create a new expirable Password object that will expire after the default timeout ExpirableObject.DEFAULT_TIMEOUT.
Password(byte[] password, int offset, int length)
Create a new expirable Password object that will expire after the default timeout ExpirableObject.DEFAULT_TIMEOUT.
Password(byte[] password, int offset, int length, long delay)
Create a new expirable Password object that will expire after the timeout denoted by constructor parameter, delay.
Password(byte[] password, long delay)
Create a new expirable Password object that will expire after the timeout denoted by constructor parameter, delay.
Password(char[] password)
Create a new expirable Password object that will expire after the default timeout ExpirableObject.DEFAULT_TIMEOUT.
Password(char[] password, int offset, int length)
Create a new expirable Password object that will expire after the default timeout ExpirableObject.DEFAULT_TIMEOUT.
Password(char[] password, int offset, int length, long delay)
Create a new expirable Password object that will expire after the timeout denoted by constructor parameter, delay.
Password(char[] password, long delay)
Create a new expirable Password object that will expire after the timeout denoted by constructor parameter, delay.

Method Summary

protected void
doDestroy()
Sets password field char[], and byte[] array elements to zero.
byte[]
getBytes()
Returns a reference to the byte[] password storage field, bPassword.
char[]
getPassword()
Returns a reference to the char[] password storage field, password.
boolean
isDestroyed()
Returns true, or false relative to whether, or not this object's doDestroy() method has been called.

Methods inherited from class gnu.java.security.util.ExpirableObject

destroy, doDestroy

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

Password

public Password(byte[] password)
Create a new expirable Password object that will expire after the default timeout ExpirableObject.DEFAULT_TIMEOUT.
Parameters:
password - The byte array password to associate with this Password object.

Password

public Password(byte[] password,
                int offset,
                int length)
Create a new expirable Password object that will expire after the default timeout ExpirableObject.DEFAULT_TIMEOUT.
Parameters:
password - The byte array password to associate with this Password object.
offset - The password byte array parameter element marking the beginning of the contained password string.
length - The number of bytes, beginning at offset, to be copied into this object's password field.

Password

public Password(byte[] password,
                int offset,
                int length,
                long delay)
Create a new expirable Password object that will expire after the timeout denoted by constructor parameter, delay.
Parameters:
password - The byte array password to associate with this Password object.
offset - The password byte array parameter element marking the beginning of the contained password string.
length - The number of bytes, beginning at offset, to be copied into this object's bPassword field.
delay - The number of miliseconds before this Password object will be automatically destroyed.

Password

public Password(byte[] password,
                long delay)
Create a new expirable Password object that will expire after the timeout denoted by constructor parameter, delay.
Parameters:
password - The byte array password to associate with this Password object.
delay - The number of miliseconds before this Password object will be automatically destroyed.

Password

public Password(char[] password)
Create a new expirable Password object that will expire after the default timeout ExpirableObject.DEFAULT_TIMEOUT.
Parameters:
password - The character array password to associate with this Password object.

Password

public Password(char[] password,
                int offset,
                int length)
Create a new expirable Password object that will expire after the default timeout ExpirableObject.DEFAULT_TIMEOUT.
Parameters:
password - The character array password to associate with this Password object.
offset - The password character array parameter element marking the beginning of the contained password string.
length - The number of characters, beginning at offset, to be copied into this object's password field.

Password

public Password(char[] password,
                int offset,
                int length,
                long delay)
Create a new expirable Password object that will expire after the timeout denoted by constructor parameter, delay.
Parameters:
password - The character array password to associate with this Password object.
offset - The password character array parameter element marking the beginning of the contained password string.
length - The number of characters, beginning at offset, to be copied into this object's password field.
delay - The number of miliseconds before this Password object will be automatically destroyed.

Password

public Password(char[] password,
                long delay)
Create a new expirable Password object that will expire after the timeout denoted by constructor parameter, delay.
Parameters:
password - The character array password to associate with this Password object.
delay - The number of miliseconds before this Password object will be automatically destroyed.

Method Details

doDestroy

protected void doDestroy()
Sets password field char[], and byte[] array elements to zero. This method implements base class ExpirableObject abstract method, ExpirableObject.doDestroy(). See also, ExpirableObject.destroy().
Overrides:
doDestroy in interface ExpirableObject

getBytes

public byte[] getBytes()
Returns a reference to the byte[] password storage field, bPassword.

getPassword

public char[] getPassword()
Returns a reference to the char[] password storage field, password.

isDestroyed

public boolean isDestroyed()
Returns true, or false relative to whether, or not this object's doDestroy() method has been called. See also, .
Specified by:
isDestroyed in interface Destroyable

Password.java -- opaque wrapper around a password. Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.