да, верно, алгоритм генерации двоичного ключа для сети WPA:
ключ = PBKDF2 (кодовая фраза, ssid, 4096, 256)
PBKDF2 описан в http://www.ietf.org/rfc/rfc2898.txt
Он использует алгоритм HMAC для создания дайджеста входных данных. HMAC может использовать любую хеш-функцию, здесь спецификация вызывает SHA1, как вы упомянули. Хеш выполняется в промежуточном состоянии в алгоритме HMAC:
H(K XOR opad, H(K XOR ipad, text))
(H = выбранная хеш-функция, K - кодовая фраза, текст будет ssid)
Этот процесс HMAC повторяется PBKDF2 4096 раз.
Алгоритм HMAC: http://www.ietf.org/rfc/rfc2104
Здесь приведен исходный пример получения ключа:
https://www.codeblog.org/viewsrc/openssl-engine-0.9.6a/crypto/evp/p5_crpt2.c
int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen,
80: unsigned char *salt, int saltlen, int iter,
81: int keylen, unsigned char *out)
соль - это SSID, пароль - это пароль.