Каково определение s2k алгоритма? Например, "PBKDF2 (SHA-1)" является s2k алгоритмом.
Вот некоторый код Botan, который относится к s2k:
AutoSeeded_RNG rng;
std::auto_ptr<S2K> s2k(get_s2k("PBKDF2(SHA-1)"));
s2k->set_iterations(8192);
s2k->new_random_salt(rng, 8);
SymmetricKey bc_key = s2k->derive_key(key_len, "BLK" + passphrase);
InitializationVector iv = s2k->derive_key(iv_len, "IVL" + passphrase);
SymmetricKey mac_key = s2k->derive_key(16, "MAC" + passphrase);
Спецификаторы String-to-key (S2K) используются для преобразования строк парольной фразы в ключи шифрования/дешифрования с симметричным ключом. Они используются в двух в настоящее время: для шифрования секретной части закрытых ключей в закрытом ключе, и для преобразования парольных фраз в ключи шифрования для симметрично зашифрованных сообщений.
Источник (с более подробной информацией): http://sunsite.icm.edu.pl/gnupg/rfc2440-3.html