sms4 first commit

support ecb/cbc/cfb/ctr modes, for more info please refer to the docs