PBKDF2 HMAC-SHA-256 interface.
We instantiate PBKDF2 with HMAC-SHA-256.
Theorem:
(defthm byte-list-of-pbkdf2-hmac-sha-256 (byte-listp (pbkdf2-hmac-sha-256 password salt iterations length)))
Theorem:
(defthm len-of-pbkdf2-hmac-sha-256 (equal (len (pbkdf2-hmac-sha-256 password salt iterations length)) (pos-fix length)))
Theorem:
(defthm pbkdf2-hmac-sha-256-of-byte-list-fix-password (equal (pbkdf2-hmac-sha-256 (byte-list-fix password) salt iterations length) (pbkdf2-hmac-sha-256 password salt iterations length)))
Theorem:
(defthm pbkdf2-hmac-sha-256-byte-list-equiv-congruence-on-password (implies (byte-list-equiv password password-equiv) (equal (pbkdf2-hmac-sha-256 password salt iterations length) (pbkdf2-hmac-sha-256 password-equiv salt iterations length))) :rule-classes :congruence)
Theorem:
(defthm pbkdf2-hmac-sha-256-of-byte-list-fix-salt (equal (pbkdf2-hmac-sha-256 password (byte-list-fix salt) iterations length) (pbkdf2-hmac-sha-256 password salt iterations length)))
Theorem:
(defthm pbkdf2-hmac-sha-256-byte-list-equiv-congruence-on-salt (implies (byte-list-equiv salt salt-equiv) (equal (pbkdf2-hmac-sha-256 password salt iterations length) (pbkdf2-hmac-sha-256 password salt-equiv iterations length))) :rule-classes :congruence)
Theorem:
(defthm pbkdf2-hmac-sha-256-of-pos-fix-iterations (equal (pbkdf2-hmac-sha-256 password salt (pos-fix iterations) length) (pbkdf2-hmac-sha-256 password salt iterations length)))
Theorem:
(defthm pbkdf2-hmac-sha-256-pos-equiv-congruence-on-iterations (implies (acl2::pos-equiv iterations iterations-equiv) (equal (pbkdf2-hmac-sha-256 password salt iterations length) (pbkdf2-hmac-sha-256 password salt iterations-equiv length))) :rule-classes :congruence)
Theorem:
(defthm pbkdf2-hmac-sha-256-of-pos-fix-length (equal (pbkdf2-hmac-sha-256 password salt iterations (pos-fix length)) (pbkdf2-hmac-sha-256 password salt iterations length)))
Theorem:
(defthm pbkdf2-hmac-sha-256-pos-equiv-congruence-on-length (implies (acl2::pos-equiv length length-equiv) (equal (pbkdf2-hmac-sha-256 password salt iterations length) (pbkdf2-hmac-sha-256 password salt iterations length-equiv))) :rule-classes :congruence)
Theorem:
(defthm true-listp-of-pbkdf2-hmac-sha-256 (true-listp (pbkdf2-hmac-sha-256 password salt iterations length)) :rule-classes :type-prescription)
Theorem:
(defthm consp-of-pbkdf2-hmac-sha-256 (consp (pbkdf2-hmac-sha-256 password salt iterations length)) :rule-classes :type-prescription)