Changeset View
Changeset View
Standalone View
Standalone View
sys/netsmb/smb_crypt.c
Show First 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | smb_E(const u_char *key, u_char *data, u_char *dest) | ||||
kk[1] = key[0] << 7 | (key[1] >> 1 & 0xfe); | kk[1] = key[0] << 7 | (key[1] >> 1 & 0xfe); | ||||
kk[2] = key[1] << 6 | (key[2] >> 2 & 0xfe); | kk[2] = key[1] << 6 | (key[2] >> 2 & 0xfe); | ||||
kk[3] = key[2] << 5 | (key[3] >> 3 & 0xfe); | kk[3] = key[2] << 5 | (key[3] >> 3 & 0xfe); | ||||
kk[4] = key[3] << 4 | (key[4] >> 4 & 0xfe); | kk[4] = key[3] << 4 | (key[4] >> 4 & 0xfe); | ||||
kk[5] = key[4] << 3 | (key[5] >> 5 & 0xfe); | kk[5] = key[4] << 3 | (key[5] >> 5 & 0xfe); | ||||
kk[6] = key[5] << 2 | (key[6] >> 6 & 0xfe); | kk[6] = key[5] << 2 | (key[6] >> 6 & 0xfe); | ||||
kk[7] = key[6] << 1; | kk[7] = key[6] << 1; | ||||
ksp = malloc(sizeof(des_key_schedule), M_SMBTEMP, M_WAITOK); | ksp = malloc(sizeof(des_key_schedule), M_SMBTEMP, M_WAITOK); | ||||
des_set_key((des_cblock *)kk, *ksp); | des_set_key(kk, *ksp); | ||||
des_ecb_encrypt((des_cblock *)data, (des_cblock *)dest, *ksp, 1); | des_ecb_encrypt(data, dest, *ksp, 1); | ||||
free(ksp, M_SMBTEMP); | free(ksp, M_SMBTEMP); | ||||
} | } | ||||
int | int | ||||
smb_encrypt(const u_char *apwd, u_char *C8, u_char *RN) | smb_encrypt(const u_char *apwd, u_char *C8, u_char *RN) | ||||
{ | { | ||||
u_char *p, *P14, *S21; | u_char *p, *P14, *S21; | ||||
▲ Show 20 Lines • Show All 216 Lines • Show Last 20 Lines |