»Home
»News
»Download
»Documentation
     »oathtool(1)
     »pskctool(1)
     »Liboath API
     »Libpskc Quickstart
     »Libpskc API
     »pam_oath
»Contribute
     »Code
     »Bug tracker
OATH Toolkit
One-time password components

enums

enums — PSKC value enumerations and related functions.

Synopsis

enum                pskc_keyusage;
const char *        pskc_keyusage2str                   (pskc_keyusage keyusage);
enum                pskc_pinusagemode;
const char *        pskc_pinusagemode2str               (pskc_pinusagemode pinusagemode);
pskc_keyusage       pskc_str2keyusage                   (const char *keyusage);
pskc_pinusagemode   pskc_str2pinusagemode               (const char *pinusagemode);
pskc_valueformat    pskc_str2valueformat                (const char *valueformat);
enum                pskc_valueformat;
const char *        pskc_valueformat2str                (pskc_valueformat valueformat);

Description

The pskc_pinusagemode type describes PIN Policy Usage Modes. You can convert between string representation and integer values using pskc_pinusagemode2str() and pskc_str2pinusagemode().

The pskc_valueformat type describes PSKC data value encodings. You can convert between string representation and integer values using pskc_valueformat2str() and pskc_str2valueformat().

The pskc_keyusage type describes what PSKC keys may be used for. You can convert between string representation and integer values using pskc_keyusage2str() and pskc_str2keyusage(). Note that often multiple pskc_keyusage values are ORed together to form set of values.

Details

enum pskc_keyusage

typedef enum {
  PSKC_KEYUSAGE_UNKNOWN = 0,
  PSKC_KEYUSAGE_OTP = 1,
  PSKC_KEYUSAGE_CR = 2,
  PSKC_KEYUSAGE_ENCRYPT = 4,
  PSKC_KEYUSAGE_INTEGRITY = 8,
  PSKC_KEYUSAGE_VERIFY = 16,
  PSKC_KEYUSAGE_UNLOCK = 32,
  PSKC_KEYUSAGE_DECRYPT = 64,
  PSKC_KEYUSAGE_KEYWRAP = 128,
  PSKC_KEYUSAGE_UNWRAP = 256,
  PSKC_KEYUSAGE_DERIVE = 512,
  PSKC_KEYUSAGE_GENERATE = 1024,
  /* Make sure the following value is the highest. */
  PSKC_KEYUSAGE_LAST = PSKC_KEYUSAGE_GENERATE
} pskc_keyusage;

Enumeration of PSKC key usage values. These values puts constraints on the intended usage of the key. The recipient of the PSKC document MUST enforce the key usage. The values are assigned to numbers so that they can be ORed together to form a set of values.

PSKC_KEYUSAGE_UNKNOWN

Unknown format.

PSKC_KEYUSAGE_OTP

The key MUST only be used for OTP generation.

PSKC_KEYUSAGE_CR

The key MUST only be used for Challenge/Response purposes.

PSKC_KEYUSAGE_ENCRYPT

The key MUST only be used for data encryption purposes.

PSKC_KEYUSAGE_INTEGRITY

The key MUST only be used to generate a keyed message digest for data integrity or authentication purposes.

PSKC_KEYUSAGE_VERIFY

The key MUST only be used to verify a keyed message digest for data integrity or authentication purposes (this is the opposite key usage of 'Integrity').

PSKC_KEYUSAGE_UNLOCK

The key MUST only be used for an inverse Challenge/ Response in the case where a user has locked the device by entering a wrong PIN too many times (for devices with PIN-input capability).

PSKC_KEYUSAGE_DECRYPT

The key MUST only be used for data decryption purposes.

PSKC_KEYUSAGE_KEYWRAP

The key MUST only be used for key wrap purposes.

PSKC_KEYUSAGE_UNWRAP

The key MUST only be used for key unwrap purposes.

PSKC_KEYUSAGE_DERIVE

The key MUST only be used with a key derivation function to derive a new key.

PSKC_KEYUSAGE_GENERATE

The key MUST only be used to generate a new key based on a random number and the previous value of the key.

PSKC_KEYUSAGE_LAST

Meta-value corresponding to the highest value, for use in iterating over all key usage values.

pskc_keyusage2str ()

const char *        pskc_keyusage2str                   (pskc_keyusage keyusage);

Convert pskc_keyusage to a string. For example, pskc_keyusage2str(PSKC_KEYUSAGE_OTP) will return "OTP". The returned string must not be deallocated.

keyusage :

an pskc_keyusage enumeration type

Returns :

String corresponding to pskc_keyusage.

enum pskc_pinusagemode

typedef enum {
  PSKC_PINUSAGEMODE_UNKNOWN = 0,
  PSKC_PINUSAGEMODE_LOCAL = 1,
  PSKC_PINUSAGEMODE_PREPEND = 2,
  PSKC_PINUSAGEMODE_APPEND = 3,
  PSKC_PINUSAGEMODE_ALGORITHMIC = 4,
  /* Make sure the following value is the highest. */
  PSKC_PINUSAGEMODE_LAST = PSKC_PINUSAGEMODE_ALGORITHMIC
} pskc_pinusagemode;

Enumeration of PIN Policy Usage Modes. This indicate the way the PIN is used.

PSKC_PINUSAGEMODE_UNKNOWN

Unknown mode.

PSKC_PINUSAGEMODE_LOCAL

PIN is checked locally on the device.

PSKC_PINUSAGEMODE_PREPEND

PIN is prepended to the OTP and checked by OTP validating party.

PSKC_PINUSAGEMODE_APPEND

PIN is appended to the OTP and checked by OTP validating party.

PSKC_PINUSAGEMODE_ALGORITHMIC

The PIN is used as part of the algorithm computation.

PSKC_PINUSAGEMODE_LAST

Meta-value corresponding to the highest value, for use in iterating over all usage mode values.

pskc_pinusagemode2str ()

const char *        pskc_pinusagemode2str               (pskc_pinusagemode pinusagemode);

Convert pskc_pinusagemode to a string. For example, pskc_pinusagemode2str(PSKC_PINUSAGEMODE_LOCAL) will return "Local". The returned string must not be deallocated.

pinusagemode :

an pskc_pinusagemode enumeration type

Returns :

String corresponding to pskc_pinusagemode.

pskc_str2keyusage ()

pskc_keyusage       pskc_str2keyusage                   (const char *keyusage);

Convert a string to a pskc_keyusage type. For example, pskc_str2keyusage("KeyWrap") will return PSKC_KEYUSAGE_KEYWRAP.

keyusage :

an string describing a key usage.

Returns :

The corresponding pskc_keyusage value.

pskc_str2pinusagemode ()

pskc_pinusagemode   pskc_str2pinusagemode               (const char *pinusagemode);

Convert a string to a pskc_pinusagemode type. For example, pskc_str2pinusagemode("Local") will return PSKC_PINUSAGEMODE_LOCAL.

pinusagemode :

an string describing a key usage.

Returns :

The corresponding pskc_pinusagemode value.

pskc_str2valueformat ()

pskc_valueformat    pskc_str2valueformat                (const char *valueformat);

Convert a string to a pskc_valueformat type. For example, pskc_str2valueformat("DECIMAL") will return PSKC_VALUEFORMAT_DECIMAL.

valueformat :

an string describing a key usage.

Returns :

The corresponding pskc_valueformat value.

enum pskc_valueformat

typedef enum {
  PSKC_VALUEFORMAT_UNKNOWN = 0,
  PSKC_VALUEFORMAT_DECIMAL = 1,
  PSKC_VALUEFORMAT_HEXADECIMAL = 2,
  PSKC_VALUEFORMAT_ALPHANUMERIC = 3,
  PSKC_VALUEFORMAT_BASE64 = 4,
  PSKC_VALUEFORMAT_BINARY = 5,
  /* Make sure the following value is the highest. */
  PSKC_VALUEFORMAT_LAST = PSKC_VALUEFORMAT_BINARY
} pskc_valueformat;

Enumeration of PSKC value encoding formats.

PSKC_VALUEFORMAT_UNKNOWN

Unknown format.

PSKC_VALUEFORMAT_DECIMAL

Only numerical digits.

PSKC_VALUEFORMAT_HEXADECIMAL

Hexadecimal response.

PSKC_VALUEFORMAT_ALPHANUMERIC

All letters and numbers (case sensitive).

PSKC_VALUEFORMAT_BASE64

Base-64 encoded.

PSKC_VALUEFORMAT_BINARY

Binary data.

PSKC_VALUEFORMAT_LAST

Meta-value corresponding to the highest value, for use in iterating over all encoding format values.

pskc_valueformat2str ()

const char *        pskc_valueformat2str                (pskc_valueformat valueformat);

Convert pskc_valueformat to a string. For example, pskc_valueformat2str(PSKC_VALUEFORMAT_DECIMAL) will return "DECIMAL". The returned string must not be deallocated.

valueformat :

an pskc_valueformat enumeration type

Returns :

String corresponding to pskc_valueformat.