if (count == -1) return96 + (rand_byte & 0x1F); /* this is a bit brute-force, but should be quick enough */ for (iter = 0; iter <= 255; iter++) if (s2k_decode_count(iter) >= count) return iter; return255;
}
int
pgp_s2k_fill(PGP_S2K *s2k, int mode, int digest_algo, int count)
{ int res = 0;
uint8 tmp;
s2k->mode = mode;
s2k->digest_algo = digest_algo;
switch (s2k->mode)
{ case PGP_S2K_SIMPLE: break; case PGP_S2K_SALTED: if (!pg_strong_random(s2k->salt, PGP_S2K_SALT)) return PXE_NO_RANDOM; break; case PGP_S2K_ISALTED: if (!pg_strong_random(s2k->salt, PGP_S2K_SALT)) return PXE_NO_RANDOM; if (!pg_strong_random(&tmp, 1)) return PXE_NO_RANDOM;
s2k->iter = decide_s2k_iter(tmp, count); break; default:
res = PXE_PGP_BAD_S2K_MODE;
} return res;
}
int
pgp_s2k_read(PullFilter *src, PGP_S2K *s2k)
{ int res = 0;
GETBYTE(src, s2k->mode);
GETBYTE(src, s2k->digest_algo); switch (s2k->mode)
{ case0: break; case1:
res = pullf_read_fixed(src, 8, s2k->salt); break; case3:
res = pullf_read_fixed(src, 8, s2k->salt); if (res < 0) break;
GETBYTE(src, s2k->iter); break; default:
res = PXE_PGP_BAD_S2K_MODE;
} return res;
}
int
pgp_s2k_process(PGP_S2K *s2k, int cipher, const uint8 *key, int key_len)
{ int res;
PX_MD *md;
s2k->key_len = pgp_get_cipher_key_size(cipher); if (s2k->key_len <= 0) return PXE_PGP_UNSUPPORTED_CIPHER;
res = pgp_load_digest(s2k->digest_algo, &md); if (res < 0) return res;
switch (s2k->mode)
{ case0:
res = calc_s2k_simple(s2k, md, key, key_len); break; case1:
res = calc_s2k_salted(s2k, md, key, key_len); break; case3:
res = calc_s2k_iter_salted(s2k, md, key, key_len); break; default:
res = PXE_PGP_BAD_S2K_MODE;
}
px_md_free(md); return res;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-08-09)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.