EN JA
Heimdal NTLM library(3)
Heimdal NTLM library(3) Heimdalntlmlibrary Heimdal NTLM library(3)

名称

Heimdal NTLM ライブラリ-

関数


void heim_ntlm_free_buf (struct ntlm_buf *p)
 
void heim_ntlm_free_targetinfo (struct ntlm_targetinfo *ti)
 
int heim_ntlm_encode_targetinfo (const struct ntlm_targetinfo *ti, int ucs2, struct ntlm_buf *data)
 
int heim_ntlm_decode_targetinfo (const struct ntlm_buf *data, int ucs2, struct ntlm_targetinfo *ti)
 
void heim_ntlm_free_type1 (struct ntlm_type1 *data)
 
int heim_ntlm_encode_type1 (const struct ntlm_type1 *type1, struct ntlm_buf *data)
 
void heim_ntlm_free_type2 (struct ntlm_type2 *data)
 
int heim_ntlm_encode_type2 (const struct ntlm_type2 *type2, struct ntlm_buf *data)
 
void heim_ntlm_free_type3 (struct ntlm_type3 *data)
 
int heim_ntlm_encode_type3 (const struct ntlm_type3 *type3, struct ntlm_buf *data)
 
int heim_ntlm_nt_key (const char *password, struct ntlm_buf *key)
 
int heim_ntlm_calculate_ntlm1 (void *key, size_t len, unsigned char challenge[8], struct ntlm_buf *answer)
 
int heim_ntlm_build_ntlm1_master (void *key, size_t len, struct ntlm_buf *session, struct ntlm_buf *master)
 
int heim_ntlm_build_ntlm2_master (void *key, size_t len, struct ntlm_buf *blob, struct ntlm_buf *session, struct ntlm_buf *master)
 
int heim_ntlm_keyex_unwrap (struct ntlm_buf *baseKey, struct ntlm_buf *encryptedSession, struct ntlm_buf *session)
 
int heim_ntlm_ntlmv2_key (const void *key, size_t len, const char *username, const char *target, unsigned char ntlmv2[16])
 
int heim_ntlm_calculate_lm2 (const void *key, size_t len, const char *username, const char *target, const unsigned char serverchallenge[8], unsigned char ntlmv2[16], struct ntlm_buf *answer)
 
int heim_ntlm_calculate_ntlm2 (const void *key, size_t len, const char *username, const char *target, const unsigned char serverchallenge[8], const struct ntlm_buf *infotarget, unsigned char ntlmv2[16], struct ntlm_buf *answer)
 
int heim_ntlm_verify_ntlm2 (const void *key, size_t len, const char *username, const char *target, time_t now, const unsigned char serverchallenge[8], const struct ntlm_buf *answer, struct ntlm_buf *infotarget, unsigned char ntlmv2[16])
 

詳細説明

NTLM コア関数は、string2key 生成関数、メッセージエンコードとデコード関数とハッシュ関数の関数群を実装しています。

関数説明

int heim_ntlm_build_ntlm1_master (void * key, size_t len, struct ntlm_buf * session, struct ntlm_buf * master)

セッションマスタキーに関連する NTLMv1 セッション乱数を生成します。

パラメータ:

key ntlm v1 キー
 
len キーの長さ
 
session 生成されたセッション使い捨て乱数 (ノンス nonce)、 heim_ntlm_free_buf() で解放されるべきです。
 
master 計算されたセッションマスタキー、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_build_ntlm2_master (void * key, size_t len, struct ntlm_buf * blob, struct ntlm_buf * session, struct ntlm_buf * master)

セッションマスタキーに関連する NTLMv2 セッション乱数を生成します。

パラメータ:

key NTLMv2 キー
 
len キーの長さ
 
blob NTLMv2 'blob'
 
session 生成されたセッション使い捨て乱数 (ノンス nonce)、 heim_ntlm_free_buf() で解放されるべきです。
 
master 計算されたセッションマスタキー、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_calculate_lm2 (const void * key, size_t len, const char * username, const char * target, const unsigned char serverchallenge[8], unsigned char ntlmv2[16], struct ntlm_buf * answer)

LMv2 応答を計算します

パラメータ:

key ntlm キー
 
len キーの長さ
 
username メッセージで送信されるユーザの名前、UTF8 であると仮定されます。
 
target ターゲットの名前、UTF8 であると仮定されます。
 
serverchallenge type2 メッセージのサーバによって送信されるチャレンジ。
 
ntlmv2 計算されるセッションキー
 
answer ntlm 応答の答え、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_calculate_ntlm1 (void * key, size_t len, unsigned char challenge[8], struct ntlm_buf * answer)

NTLMv1 応答ハッシュを計算します

パラメータ:

key ntlm v1 キー
 
len キーの長さ
 
challenge サーバによって送信される
 
answer 計算された答え、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_calculate_ntlm2 (const void * key, size_t len, const char * username, const char * target, const unsigned char serverchallenge[8], const struct ntlm_buf * infotarget, unsigned char ntlmv2[16], struct ntlm_buf * answer)

NTLMv2 応答を計算します

パラメータ:

key ntlm キー
 
len キーの長さ
 
username メッセージで送信されるユーザの名前、UTF8 であると仮定されます。
 
target ターゲットの名前、UTF8 であると仮定されます。
 
serverchallenge type2 メッセージのサーバによって送信されるチャレンジ。
 
infotarget type2 メッセージのサーバによって送信される情報ターゲット。
 
ntlmv2 計算されるセッションキー
 
answer ntlm 応答の答え、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_decode_targetinfo (const struct ntlm_buf * data, int ucs2, struct ntlm_targetinfo * ti)

NTLM targetinfo メッセージをデコードします。

パラメータ:

data エンコード NTLM targetinfo メッセージがある入力データバッファ
 
ucs2 文字列が (メッセージのフラグによって選択された) ucs2 でエンコードされるべきであるなら。
 
ti デコードされたターゲット情報、 heim_ntlm_free_targetinfo() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_encode_targetinfo (const struct ntlm_targetinfo * ti, int ucs2, struct ntlm_buf * data)

ntlm_targetinfo メッセージをエンコードします。

パラメータ:

ti エンコードされる ntlm_targetinfo メッセージ。
 
ucs2 無視されます
 
data は、エンコードされたメッセージを返すバッファです、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_encode_type1 (const struct ntlm_type1 * type1, struct ntlm_buf * data)

ntlm_type1 メッセージをエンコードします。

パラメータ:

type1 エンコードする ntlm_type1 メッセージ。
 
data は、エンコードされたメッセージを返すバッファです、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_encode_type2 (const struct ntlm_type2 * type2, struct ntlm_buf * data)

ntlm_type2 メッセージをエンコードします。

パラメータ:

type2 エンコードする ntlm_type2 メッセージ。
 
data は、エンコードされたメッセージを返すバッファです、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_encode_type3 (const struct ntlm_type3 * type3, struct ntlm_buf * data)

ntlm_type3 メッセージをエンコードします。

パラメータ:

type3 エンコードする ntlm_type3 メッセージ。
 
data は、エンコードされたメッセージを返すバッファです、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

void heim_ntlm_free_buf (struct ntlm_buf * p)

heim_ntlm_free_buf は、ntlm バッファを解放します

パラメータ:

p 解放されるバッファ

 

void heim_ntlm_free_targetinfo (struct ntlm_targetinfo * ti)

ntlm_targetinfo メッセージを解放します

パラメータ:

ti 解放される targetinfo

 

void heim_ntlm_free_type1 (struct ntlm_type1 * data)

ntlm_type1 メッセージを解放します

パラメータ:

data 解放されるメッセージ

 

void heim_ntlm_free_type2 (struct ntlm_type2 * data)

ntlm_type2 メッセージを解放します

パラメータ:

data 解放されるメッセージ

 

void heim_ntlm_free_type3 (struct ntlm_type3 * data)

ntlm_type3 メッセージを解放します

パラメータ:

data 解放されるメッセージ

 

int heim_ntlm_keyex_unwrap (struct ntlm_buf * baseKey, struct ntlm_buf * encryptedSession, struct ntlm_buf * session)

キーと暗号化されたセッションを与えて、セッションキーをアンラップ (unwrap) します

パラメータ:

baseKey セッションベースキー (sessionBaseKey)
 
encryptedSession 暗号化されたセッション、type3.session フィールド。
 
session 生成されたセッション使い捨て乱数 (ノンス nonce)、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_nt_key (const char * password, struct ntlm_buf * key)

NTLM キーを計算します、パスワードは、UTF8 であると仮定されます。

パラメータ:

password キーを計算するパスワード。
 
key 計算されたキー、 heim_ntlm_free_buf() で解放されるべきです。

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 

int heim_ntlm_ntlmv2_key (const void * key, size_t len, const char * username, const char * target, unsigned char ntlmv2[16])

NTLMv2 セッションキーを生成します。

パラメータ:

key ntlm キー
 
len キーの長さ
 
username メッセージで送信されるユーザの名前、UTF8 であると仮定されます。
 
target ターゲットの名前、UTF8 であると仮定されます。
 
ntlmv2 ntlmv2 セッションキー

返り値:

成功すれば、0、または失敗でエラーコード。

 

int heim_ntlm_verify_ntlm2 (const void * key, size_t len, const char * username, const char * target, time_t now, const unsigned char serverchallenge[8], const struct ntlm_buf * answer, struct ntlm_buf * infotarget, unsigned char ntlmv2[16])

NTLMv2 応答を検証します。

パラメータ:

key ntlm キー
 
len キーの長さ
 
username メッセージで送信されるユーザの名前、UTF8 であると仮定されます。
 
target ターゲットの名前、UTF8 であると仮定されます。
 
now 今の時間 (ライブラリがそれ自体を獲得するなら、0)
 
serverchallenge type2 メッセージのサーバによって送信されるチャレンジ。
 
answer ntlm 応答の答え、 heim_ntlm_free_buf() で解放されるべきです。
 
infotarget type2 メッセージのサーバによって送信される情報ターゲット。
 
ntlmv2 計算されたセッションキー

返り値:

成功の場合に、0 が返され、エラーのとき、errno に何が間違ったか。

 
11 Jan 2012 Version 1.5.2