A set of changes designed to support layered encryption, including random key generation and being able to pass keypairs instead of pbkdf2 seed strings.