私は c で pam モジュールを作成しました。次のコードにより、私の pam はこれを吐き出します。
sudo: pam_authenticate: モジュールが不明です
文字列の md5 ハッシュ値を取得しようとしています。
char *str2md5(const char *str, int length) {
int n;
MD5_CTX c;
unsigned char digest[16];
char *out = (char*)malloc(33);
MD5_Init(&c);
while (length > 0) {
if (length > 512) {
MD5_Update(&c, str, 512);
} else {
MD5_Update(&c, str, length);
}
length -= 512;
str += 512;
}
MD5_Final(digest, &c);
for (n = 0; n < 16; ++n) {
snprintf(&(out[n*2]), 16*2, "%02x", (unsigned int)digest[n]);
}
return out;
}
そのようにコメントアウトすると機能します
char *str2md5(const char *str, int length) {
int n;
MD5_CTX c;
/*unsigned char digest[16];
char *out = (char*)malloc(33);
MD5_Init(&c);
while (length > 0) {
if (length > 512) {
MD5_Update(&c, str, 512);
} else {
MD5_Update(&c, str, length);
}
length -= 512;
str += 512;
}
MD5_Final(digest, &c);
for (n = 0; n < 16; ++n) {
snprintf(&(out[n*2]), 16*2, "%02x", (unsigned int)digest[n]);
}
return out;*/
}
コードをコメントアウトすると、これが得られます..
DEBUG: 08217239
Authentication Code: 08217239
[sudo] password for richardw:
pamを使用しているときにmd5ハッシュを取得しようとしているのは些細なことですが、私は何かに取り組んでおり、何らかの理由でpamが好きではありません。誰かが回避策を知っていますか?