EN JA
KRB5_ENCRYPT(3)
KRB5_ENCRYPT(3) FreeBSD Library Functions Manual KRB5_ENCRYPT(3)

名称

krb5_crypto_getblocksize, krb5_crypto_getconfoundersize krb5_crypto_getenctype, krb5_crypto_getpadsize, krb5_crypto_overhead, krb5_decrypt, krb5_decrypt_EncryptedData, krb5_decrypt_ivec, krb5_decrypt_ticket, krb5_encrypt, krb5_encrypt_EncryptedData, krb5_encrypt_ivec, krb5_enctype_disable, krb5_enctype_keysize, krb5_enctype_to_string, krb5_enctype_valid, krb5_get_wrapped_length, krb5_string_to_enctypeデータを暗号化し復号化 (解読) する

ライブラリ

Kerberos 5 ライブラリ (libkrb5, -lkrb5)

書式

#include < krb5.h>

krb5_error_code
krb5_encrypt( krb5_context context, krb5_crypto crypto, unsigned usage, void *data, size_t len, krb5_data *result);

krb5_error_code
krb5_encrypt_EncryptedData( krb5_context context, krb5_crypto crypto, unsigned usage, void *data, size_t len, int kvno, EncryptedData *result);

krb5_error_code
krb5_encrypt_ivec( krb5_context context, krb5_crypto crypto, unsigned usage, void *data, size_t len, krb5_data *result, void *ivec);

krb5_error_code
krb5_decrypt( krb5_context context, krb5_crypto crypto, unsigned usage, void *data, size_t len, krb5_data *result);

krb5_error_code
krb5_decrypt_EncryptedData( krb5_context context, krb5_crypto crypto, unsigned usage, EncryptedData *e, krb5_data *result);

krb5_error_code
krb5_decrypt_ivec( krb5_context context, krb5_crypto crypto, unsigned usage, void *data, size_t len, krb5_data *result, void *ivec);

krb5_error_code
krb5_decrypt_ticket( krb5_context context, Ticket *ticket, krb5_keyblock *key, EncTicketPart *out, krb5_flags flags);

krb5_error_code
krb5_crypto_getblocksize( krb5_context context, size_t *blocksize);

krb5_error_code
krb5_crypto_getenctype( krb5_context context, krb5_crypto crypto, krb5_enctype *enctype);

krb5_error_code
krb5_crypto_getpadsize( krb5_context context, size_t, *padsize");

krb5_error_code
krb5_crypto_getconfoundersize( krb5_context context, krb5_crypto crypto, size_t, *confoundersize");

krb5_error_code
krb5_enctype_keysize( krb5_context context, krb5_enctype type, size_t *keysize);

krb5_error_code
krb5_crypto_overhead( krb5_context context, size_t, *padsize");

krb5_error_code
krb5_string_to_enctype( krb5_context context, const char *string, krb5_enctype *etype);

krb5_error_code
krb5_enctype_to_string( krb5_context context, krb5_enctype etype, char **string);

krb5_error_code
krb5_enctype_valid( krb5_context context, krb5_enctype etype);

void
krb5_enctype_disable( krb5_context context, krb5_enctype etype);

size_t
krb5_get_wrapped_length( krb5_context context, krb5_crypto crypto, size_t data_len);

解説

これらの関数は、データを暗号化して復号化 (解読) するために使用されます。

krb5_encrypt_ivec() は、 ( len サイズの) data の暗号化されたバージョンを result に入れます。暗号化タイプが派生キーの使用をサポートするなら、 usage は適切なキー使用法 (key-usage) であるべきです。 ivec は、初期の IV へのポインタで、それはラウンドの終わりで end IV に変更されます。 NULL が渡されるなら、デフォルトの IV が使用されます。 krb5_encrypt() は、 krb5_encrypt_ivec() と同じですが、 NULL である ivec を使用します。 krb5_encrypt_EncryptedData() は krb5_encrypt() として同じようにしますが、代わりに EncryptedData 構造体に暗号化されたデータを入れます。 kvno が 0 でないなら、それは EncryptedData の (オプションの) kvno フィールドに入れられます。

krb5_decrypt_ivec(), krb5_decrypt() と krb5_decrypt_EncryptedData() は同じように働きます。

krb5_decrypt_ticket() は、 keyticket の暗号化されている部分を復号化します。また、 krb5_decrypt_ticket() は、 KDC が通過しているパス (トランジットパス) について検証していないなら、チケット中のタイムスタンプ、無効のフラグを検証します。

krb5_enctype_keysize(), krb5_crypto_getconfoundersize(), krb5_crypto_getblocksize(), krb5_crypto_getenctype(), krb5_crypto_getpadsize(), krb5_crypto_overhead() は、すべて暗号コンテキストから様々な (ときどき) 役に立つ情報を返します。 krb5_crypto_overhead() は、 krb5_crypto_getconfoundersize、 krb5_crypto_getblocksize と krb5_crypto_getpadsize の組み合わせであり、最大のオーバヘッドサイズを返します。

krb5_enctype_to_string() は、暗号化されたタイプ番号を印刷可能な文字列に変換し、それを格納します。返された文字列は、 free(3) で解放されるべきです。

krb5_string_to_enctype() は、暗号化されたタイプ文字列を、他の Kerberos 暗号化関数に使用することができる、暗号化されたタイプ番号に変換します。

krb5_enctype_valid() は、暗号化がサポートされていて、無効にされていないなら、0 を返し、そうでなければ、エラーコードが、返されます。

krb5_enctype_disable() (すべてのコンテキストで、グローバルである) enctype を無効にします。

krb5_get_wrapped_length() は、長さ data_lencrypto によって暗号化されたパケットのサイズを返します。

March 20, 2004 HEIMDAL