A better solution may have been multi-key support. Some test records could be encrypted with the new key and the system let run for a week or so. Then all new records could start being encrypted with the new key and run for another week. Once everything looks good a background job could be started to convert all data to the new key. Then the old key can be retired (other than as needed for backups).
Although they did have the key printed in an envelope, so it sounds like that would have been an effective recovery solution once they remembered.
They couldn't believe that anyone wants trailing spaces on their password.
It is an instance of "make sure you have backups when deploying to production"
Since the function uses a static buffer, there is a limit on the password length, which apparently on Solaris was set to the absurdly low value of 8 (glibc uses a more reasonable value: 8192).