Class Kerberos::Krb5
In: ext/rkerberos/rkerberos.c
Parent: Object

call-seq:

  krb5.get_permitted_enctypes

Returns a hash containing the permitted encoding types. The key is the numeric constant, with a string description as its value.

Example:

  krb.get_permitted_enctypes

  # Results:
  {
     1  => "DES cbc mode with CRC-32",
     2  => "DES cbc mode with RSA-MD4",
     3  => "DES cbc mode with RSA-MD5"}
     16 => "Triple DES cbc mode with HMAC/sha1",
     17 => "AES-128 CTS mode with 96-bit SHA-1 HMAC",
     18 => "AES-256 CTS mode with 96-bit SHA-1 HMAC",
     23 => "ArcFour with HMAC/md5"
  }

Methods

Classes and Modules

Class Kerberos::Krb5::Exception

Constants

VERSION = 0.1.0   The version of the custom rkerberos library
ENCTYPE_NULL = 0   None
ENCTYPE_DES_CBC_CRC = 1   DES cbc mode with CRC-32
ENCTYPE_DES_CBC_MD4 = 2   DES cbc mode with RSA-MD4
ENCTYPE_DES_CBC_MD5 = 3   DES cbc mode with RSA-MD5
ENCTYPE_DES_CBC_RAW = 4   DES cbc mode raw
ENCTYPE_DES3_CBC_SHA = 5   DES-3 cbc mode with NIST-SHA
ENCTYPE_DES3_CBC_RAW = 6   DES-3 cbc mode raw
ENCTYPE_DES_HMAC_SHA1 = 8   HMAC SHA1
ENCTYPE_DSA_SHA1_CMS = 9   DSA with SHA1, CMS signature
ENCTYPE_MD5_RSA_CMS = 10   MD5 with RSA, CMS signature
ENCTYPE_SHA1_RSA_CMS = 11   SHA1 with RSA, CMS signature
ENCTYPE_RC2_CBC_ENV = 12   RC2 cbc mode, CMS enveloped data
ENCTYPE_RSA_ENV = 13   RSA encryption, CMS enveloped data
ENCTYPE_RSA_ES_OAEP_ENV = 14   RSA w/OEAP encryption, CMS enveloped data
ENCTYPE_DES3_CBC_ENV = 15   DES-3 cbc mode, CMS enveloped data
ENCTYPE_DES3_CBC_SHA1 = 16   DES3 CBC SHA1
ENCTYPE_AES128_CTS_HMAC_SHA1_96 = 17   AES128 CTS HMAC SHA1 96
ENCTYPE_AES256_CTS_HMAC_SHA1_96 = 18   AES256 CTS HMAC SHA1 96
ENCTYPE_ARCFOUR_HMAC = 23   ARCFOUR HMAC
ENCTYPE_ARCFOUR_HMAC_EXP = 24   ARCFOUR HMAC EXP
ENCTYPE_UNKNOWN = 511   Unknown

Public Class methods

Creates and returns a new Kerberos::Krb5 object. This initializes the context for future method calls on that object.

Public Instance methods

Changes the password for the principal from old to new. The principal is defined as whoever the last principal was authenticated via the Krb5#get_init_creds_password method.

Attempting to change a password before a principal has been established will raise an error.

Example:

krb5.get_init_creds_password(‘foo’, ‘XXXXXX’) # Authenticate ‘foo’ user krb5.change_password(‘XXXXXX’, ‘YYYYYY’) # Change password for ‘foo‘

Handles cleanup of the Krb5 object, freeing any credentials, principal or context associated with the object.

default_principal()
default_realm()

Alias for get_default_realm

Returns the default principal for the current realm based on the current credentials cache.

If no credentials cache is found then an error is raised.

Returns the default Kerberos realm on your system.

Acquire credentials for principal from keytab using service. If no principal is specified, then a principal is derived from the service name. If no service name is specified, kerberos defaults to "host".

If no keytab file is provided, the default keytab file is used. This is typically /etc/krb5.keytab.

If ccache is supplied and is a Kerberos::Krb5::CredentialsCache, the resulting credentials will be stored in the credential cache.

Authenticates the credentials of user using password against service, and has the effect of setting the principal and context internally. This method must typically be called before using other methods.

Returns a hash containing the permitted encoding types. The key is the numeric constant, with a string description as its value.

Example:

  krb.get_permitted_enctypes

  # Results:
  {
     1  => "DES cbc mode with CRC-32",
     2  => "DES cbc mode with RSA-MD4",
     3  => "DES cbc mode with RSA-MD5"}
     16 => "Triple DES cbc mode with HMAC/sha1",
     17 => "AES-128 CTS mode with 96-bit SHA-1 HMAC",
     18 => "AES-256 CTS mode with 96-bit SHA-1 HMAC",
     23 => "ArcFour with HMAC/md5"
  }

Sets the default realm to realm. If no argument is provided, then the default realm in your krb5.conf file is used.

[Validate]