User: Zhang Kaitao
Date: 13-2-4 上午9:38
Version: 1.0
KeyValue
object contains a single public key that may be useful in validating the signature. The XML schema definition is defined as: <element name="KeyValue" type="ds:KeyValueType"/> <complexType name="KeyValueType" mixed="true"> <choice> <element ref="ds:DSAKeyValue"/> <element ref="ds:RSAKeyValue"/> <any namespace="##other" processContents="lax"/> </choice> </complexType> <element name="DSAKeyValue" type="ds:DSAKeyValueType"/> <complexType name="DSAKeyValueType"> <sequence> <sequence minOccurs="0"> <element name="P" type="ds:CryptoBinary"/> <element name="Q" type="ds:CryptoBinary"/> </sequence> <element name="G" type="ds:CryptoBinary" minOccurs="0"/> <element name="Y" type="ds:CryptoBinary"/> <element name="J" type="ds:CryptoBinary" minOccurs="0"/> <sequence minOccurs="0"> <element name="Seed" type="ds:CryptoBinary"/> <element name="PgenCounter" type="ds:CryptoBinary"/> </sequence> </sequence> </complexType> <element name="RSAKeyValue" type="ds:RSAKeyValueType"/> <complexType name="RSAKeyValueType"> <sequence> <element name="Modulus" type="ds:CryptoBinary"/> <element name="Exponent" type="ds:CryptoBinary"/> </sequence> </complexType>A
KeyValue
instance may be created by invoking the {@link KeyInfoFactory#newKeyValue newKeyValue} method of the{@link KeyInfoFactory} class, and passing it a {@link java.security.PublicKey} representing the value of the public key. Here is an example of creating a KeyValue
from a {@link DSAPublicKey} of a {@link java.security.cert.Certificate} stored in a {@link java.security.KeyStore}: KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); PublicKey dsaPublicKey = keyStore.getCertificate("myDSASigningCert").getPublicKey(); KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM"); KeyValue keyValue = factory.newKeyValue(dsaPublicKey);This class returns the
DSAKeyValue
and RSAKeyValue
elements as objects of type {@link DSAPublicKey} and {@link RSAPublicKey}, respectively. Note that not all of the fields in the schema are accessible as parameters of these types.
@author Sean Mullan
@author JSR 105 Expert Group
@see KeyInfoFactory#newKeyValue(PublicKey)
A Map Entry has considerable additional semantics over and above a simple key-value pair. This interface defines the minimum key value, with just the two get methods. @since Commons Collections 3.0 @version $Revision: 1.4 $ $Date: 2004/02/18 01:15:42 $ @author Stephen Colebourne
If being used client-side, the primary methods to access individual fields are {@link #getRow()}, {@link #getFamily()}, {@link #getQualifier()}, {@link #getTimestamp()}, and {@link #getValue()}. These methods allocate new byte arrays and return copies. Avoid their use server-side.
Instances of this class are immutable. They do not implement Comparable but Comparators are provided. Comparators change with context, whether user table or a catalog table comparison. Its critical you use the appropriate comparator. There are Comparators for KeyValue instances and then for just the Key portion of a KeyValue used mostly by {@link HFile}.
KeyValue wraps a byte array and takes offsets and lengths into passed array at where to start interpreting the content as KeyValue. The KeyValue format inside a byte array is: <keylength> <valuelength> <key> <value>
Key is further decomposed as: <rowlength> <row> <columnfamilylength> <columnfamily> <columnqualifier> <timestamp> <keytype>
The rowlength
maximum is Short.MAX_SIZE
, column family length maximum is Byte.MAX_SIZE
, and column qualifier + key length must be < Integer.MAX_SIZE
. The column does not contain the family/qualifier delimiter, {@link #COLUMN_FAMILY_DELIMITER}
This represents one unit of HBase data, one "record".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|