Changing file api from direct use of master keys to accepting only necessary (d)ecrypting functionality, in line with a principle of least priviledge.
This change allows to use this library in place(s) that do use the principle, and do not provide raw keys.
So, the moral here for core library builders is to always use least priviledge construction, otherwise, downstream user will not be able to harden his/her system.