Bayonne2 / Common C++ 2 Framework
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Enumerations
GnuZrtpCodes Namespace Reference

This enum defines the information message severity. More...

Enumerations

enum  MessageSeverity { Info = 1, Warning, Severe, ZrtpError }
 
enum  InfoCodes {
  InfoHelloReceived = 1, InfoCommitDHGenerated, InfoRespCommitReceived, InfoDH1DHGenerated,
  InfoInitDH1Received, InfoRespDH2Received, InfoInitConf1Received, InfoRespConf2Received,
  InfoRSMatchFound, InfoSecureStateOn, InfoSecureStateOff
}
 Sub-codes for Info. More...
 
enum  WarningCodes {
  WarningDHAESmismatch = 1, WarningGoClearReceived, WarningDHShort, WarningNoRSMatch,
  WarningCRCmismatch, WarningSRTPauthError, WarningSRTPreplayError, WarningNoExpectedRSMatch
}
 Sub-codes for Warning. More...
 
enum  SevereCodes {
  SevereHelloHMACFailed = 1, SevereCommitHMACFailed, SevereDH1HMACFailed, SevereDH2HMACFailed,
  SevereCannotSend, SevereProtocolError, SevereNoTimer, SevereTooMuchRetries
}
 Sub-codes for Severe. More...
 
enum  ZrtpErrorCodes {
  MalformedPacket = 0x10, CriticalSWError = 0x20, UnsuppZRTPVersion = 0x30, HelloCompMismatch = 0x40,
  UnsuppHashType = 0x51, UnsuppCiphertype = 0x52, UnsuppPKExchange = 0x53, UnsuppSRTPAuthTag = 0x54,
  UnsuppSASScheme = 0x55, NoSharedSecret = 0x56, DHErrorWrongPV = 0x61, DHErrorWrongHVI = 0x62,
  SASuntrustedMiTM = 0x63, ConfirmHMACWrong = 0x70, NonceReused = 0x80, EqualZIDHello = 0x90,
  GoCleatNotAllowed = 0x100, IgnorePacket = 0x7fffffff
}
 Error codes according to the ZRTP specification chapter 6.9. More...
 
enum  InfoEnrollment { EnrollmentRequest, EnrollmentCanceled, EnrollmentFailed, EnrollmentOk }
 Information codes for the Enrollment user callbacks. More...
 

Detailed Description

This enum defines the information message severity.

The ZRTP implementation issues information messages to inform the user about ongoing processing, unusual behavior, or alerts in case of severe problems. Each main severity code a number of sub-codes exist that specify the exact nature of the problem.

An application gets message severity codes and the associated sub-codes via the ZrtpUserCallback::showMessage method.

The severity levels and their meaning are:

Info
keeps the user informed about ongoing processing and security setup. The enumeration InfoCodes defines the subcodes.
Warning
is an information about some security issues, e.g. if an AES 256 encryption is request but only DH 3072 as public key scheme is supported. ZRTP will establish a secure session (SRTP). The enumeration WarningCodes defines the sub-codes.
Severe
is used if an error occured during ZRTP protocol usage. In case of Severe ZRTP will not establish a secure session. The enumeration SevereCodes defines the sub-codes.
Zrtp
shows a ZRTP security problem. Refer to the enumeration ZrtpErrorCodes for sub-codes. GNU ZRTP of course will not establish a secure session.

Enumeration Type Documentation

Sub-codes for Info.

Enumerator
InfoHelloReceived 

Hello received, preparing a Commit.

InfoCommitDHGenerated 

Commit: Generated a public DH key.

InfoRespCommitReceived 

Responder: Commit received, preparing DHPart1.

InfoDH1DHGenerated 

DH1Part: Generated a public DH key.

InfoInitDH1Received 

Initiator: DHPart1 received, preparing DHPart2.

InfoRespDH2Received 

Responder: DHPart2 received, preparing Confirm1.

InfoInitConf1Received 

Initiator: Confirm1 received, preparing Confirm2.

InfoRespConf2Received 

Responder: Confirm2 received, preparing Conf2Ack.

InfoRSMatchFound 

At least one retained secrets matches - security OK.

InfoSecureStateOn 

Entered secure state.

InfoSecureStateOff 

No more security for this session.

Definition at line 75 of file ZrtpCodes.h.

Information codes for the Enrollment user callbacks.

Enumerator
EnrollmentRequest 

Aks user to confirm or deny an Enrollemnt request.

EnrollmentCanceled 

User did not confirm the PBX enrollement.

EnrollmentFailed 

Enrollment process failed, no PBX secret available.

EnrollmentOk 

Enrollment process for this PBX was ok.

Definition at line 152 of file ZrtpCodes.h.

Enumerator
Info 
Warning 
Severe 
ZrtpError 

Definition at line 65 of file ZrtpCodes.h.

Sub-codes for Severe.

Enumerator
SevereHelloHMACFailed 

Hash HMAC check of Hello failed!

SevereCommitHMACFailed 

Hash HMAC check of Commit failed!

SevereDH1HMACFailed 

Hash HMAC check of DHPart1 failed!

SevereDH2HMACFailed 

Hash HMAC check of DHPart2 failed!

SevereCannotSend 

Cannot send data - connection or peer down?

SevereProtocolError 

Internal protocol error occured!

SevereNoTimer 

Cannot start a timer - internal resources exhausted?

SevereTooMuchRetries 

Too much retries during ZRTP negotiation - connection or peer down?

Definition at line 106 of file ZrtpCodes.h.

Sub-codes for Warning.

Enumerator
WarningDHAESmismatch 

Commit contains an AES256 cipher but does not offer a Diffie-Helman 4096.

WarningGoClearReceived 

Received a GoClear message.

WarningDHShort 

Hello offers an AES256 cipher but does not offer a Diffie-Helman 4096.

WarningNoRSMatch 

No retained shared secrets available - must verify SAS.

WarningCRCmismatch 

Internal ZRTP packet checksum mismatch - packet dropped.

WarningSRTPauthError 

Dropping packet because SRTP authentication failed!

WarningSRTPreplayError 

Dropping packet because SRTP replay check failed!

WarningNoExpectedRSMatch 

Valid retained shared secrets availabe but no matches found - must verify SAS.

Definition at line 92 of file ZrtpCodes.h.

Error codes according to the ZRTP specification chapter 6.9.

GNU ZRTP uses these error codes in two ways: to fill the appropriate field ing the ZRTP Error packet and as sub-code in ZrtpUserCallback::showMessage(). GNU ZRTP uses thes error codes also to report received Error packts, in this case the sub-codes are their negative values.

The enumeration member comments are copied from the ZRTP specification.

Enumerator
MalformedPacket 

Malformed packet (CRC OK, but wrong structure)

CriticalSWError 

Critical software error.

UnsuppZRTPVersion 

Unsupported ZRTP version.

HelloCompMismatch 

Hello components mismatch.

UnsuppHashType 

Hash type not supported.

UnsuppCiphertype 

Cipher type not supported.

UnsuppPKExchange 

Public key exchange not supported.

UnsuppSRTPAuthTag 

SRTP auth. tag not supported.

UnsuppSASScheme 

SAS scheme not supported.

NoSharedSecret 

No shared secret available, DH mode required.

DHErrorWrongPV 

DH Error: bad pvi or pvr ( == 1, 0, or p-1)

DHErrorWrongHVI 

DH Error: hvi != hashed data.

SASuntrustedMiTM 

Received relayed SAS from untrusted MiTM.

ConfirmHMACWrong 

Auth. Error: Bad Confirm pkt HMAC.

NonceReused 

Nonce reuse.

EqualZIDHello 

Equal ZIDs in Hello.

GoCleatNotAllowed 

GoClear packet received, but not allowed.

IgnorePacket 

Definition at line 128 of file ZrtpCodes.h.