Hi
Haven't had time to get deep into this problem, but one thought: you have both filehandles in binmode and you are reading encrypted data that may not have "\n" characters. Perhaps you should do a $fh_cipher->read instead of $fh_cipher->getline?
HTH, J