The issue is not the decryption, it is the result NSData from the decryption. There is a high possibility that it might contain non UTF format Data which is making the Data to NNString conversion fail. Objective C is still more tolerant to handle imperfect UTF Data bytes, swift would fail everytime because of the optionals.