public final class ServerHelloMessageTypeV1_0 extends ServerHelloMessageType
The layout of this message is as follows :
Zone | Format | Length | Description |
---|---|---|---|
SIGNATURE | STRING | The name of the signing protocol that the server elected as the most appropriate to be used. The zero-length string indicates no signing protocol will be employed. | |
CIPHER | STRING | The name of the encryption protocol that the server elected as the one to be used on this connection. The zero-length string indicates no encryption on this connection, and the CIPHERINFOENCRYPTED, CIPHERINFOLENGTH and CIPHERINFO fields will not be present in the message. | |
CIPHERINFOENCRYPTED | INTEGER | 1 | Flag indicating whether the CIPHERINFO field is encrypted (1) or plaintext (0). If encrypted, the encryption was done using the public key of the certificate that the connecting client has registered with the server engine for the Signature algorithm named in the SIGNATURE field. If not encrypted, the connecting client has the option to abort the communication. |
CIPHERINFOLENGTH | INTEGER | 4 | The length in bytes of the subsequent CIPHERINFO field. |
CIPHERINFO | BYTES | This field contains info pertinent to the particular encryption protocol elected by the server. The format of this field is protocol-specific and explained in separate tables below. | |
IDLETIME | INTEGER | 8 | The idle time that the server has decided to allow for this connection. Clients must inspect this field and cannot simply assume that the server will retain the IDLETIME setting that has been requested by the client in the session protocol negotiation message. |
MAJORPRODUCTVERSION | INTEGER | 2 | The major version of the SIRA_PRISE specification that the client is to use when selecting the message versions to send to the server and to interpret the responses from the server. This may be a "lesser" version of the SIRA_PRISE specification if the client package is "more recent" than the server that the client is connecting to. |
MINORPRODUCTVERSION | INTEGER | 2 | The minor version of the SIRA_PRISE specification that the client is to use. |
ALTSIGNATURES | INTEGER | 2 | The number of alternative signature algorithms that the server supports, and that can be used in e.g. transaction user identity signing. Can be zero. |
ALTSIGNATURE | STRING | The name of an alternative signing algorithm that the server supports and that can be used in e.g. user identity signing when starting transactions. Appears as many times as indicated in the ALTSIGNATURES field. | |
SPCHALLENGE | BYTES | 14 | Only present if MAJORPRODUCTVERSION/MINORPRODUCTVERSION is 1.5 or later. In that case, a random string for which the client is to compute a signature (using the elected signing algorithm and the key corresponding to the certificate registered for the client in the catalog). This field will also be the 'challenge' to use when authenticating users using signatures in the StartTransation() messages. |
The layout of the SERVEREPINFO field depends on the particular encryption protocol elected by the server and named in EP. Currently, only one encryption protocol is supported, namely SIRA_PRISE's proprietary SPE protocol. The layout of the SERVEREPINFO field for this protocol is as follows :
Zone | Format | Length | Description |
---|---|---|---|
KEY | INTEGER | 4096 | An array of 2048 2-byte INTEGER values. |
Modifier and Type | Field and Description |
---|---|
static int |
SPCHALLENGE_LENGTH
The length of the SPCHALLENGE field in bytes (14 )
|
MESSAGETYPEID
Modifier and Type | Method and Description |
---|---|
ServerHelloMessage |
message(java.lang.String signatureName,
java.lang.String cipherName,
long idleTime,
Version clientSiraPriseVersion,
java.util.Set<java.lang.String> alternativeSigningProtocols,
byte[] challenge,
byte[] cipherInfo,
java.lang.String cipherInfoCipherName)
Factory method to produce a ServerHello message of this version of the message type
|
public static final int SPCHALLENGE_LENGTH
public ServerHelloMessage message(java.lang.String signatureName, java.lang.String cipherName, long idleTime, Version clientSiraPriseVersion, java.util.Set<java.lang.String> alternativeSigningProtocols, byte[] challenge, byte[] cipherInfo, java.lang.String cipherInfoCipherName)
ServerHelloMessageType
message
in class ServerHelloMessageType
signatureName
- The message signing protocol elected by the server from the set of signing protocols proposed by the clientcipherName
- The encryption protocol elected by the server from the set of encryption protocols proposed by the clientidleTime
- The time in milliseconds that the server will allow this connection to remain idleclientSiraPriseVersion
- The SIRA_PRISE version that the client must use for communication.alternativeSigningProtocols
- The set of alternative signing protocols that the server can handle (in addition to the elected signingProtocol) for user authenticationchallenge
- The 'challenge' to the client who wants to establish a connection and will be taken to task to authenticate himself, using this challengecipherInfo
- The additional info relating to the cipherName fieldcipherInfoCipherName
- flag indicating whether the cipherInfo is passed in PlainText, or encrypted using the public key from the certificate that the connecting client has registered for the selected signature algorithm