I have seen the example here. All well and good and I understand it, however it relies on the bounceycastle library for the provider. I don’t want to bundle any additional third party libraries with my app if I can help it. I don’t need fort knox style security, just some basic symmetric encryption for transmitting over the wire. How can I do basic encryption on Android with out third party libraries?
thanks
Well BouncyCastle is included in Android, as you can see if you would try to include it you would get:
D/dalvikvm( 9268): DexOpt: not verifying 'Lorg/bouncycastle/x509/extension/SubjectKeyIdentifierStructure;': multiple definitionsand so on.However, not all algorithms are implemented – you would get an NoSuchAlgorithmException.
In Android 2.2 I found these to be implemented:
PBEWITHSHAAND128BITAES-CBC-BCPBEWITHSHAAND3-KEYTRIPLEDES-CBC
1.2.840.113549.1.1.7
PBEWITHSHA256AND256BITAES-CBC-BC
PBEWITHSHAAND192BITAES-CBC-BC
DESEDE
DES
1.2.840.113549.3.7
PBEWITHSHAAND2-KEYTRIPLEDES-CBC
1.3.14.3.2.7
PBEWITHSHA256AND192BITAES-CBC-BC
PBEWITHSHAAND256BITAES-CBC-BC
PBEWITHSHAAND40BITRC2-CBC
AES
2.16.840.1.101.3.4.1.42
PBEWITHSHA256AND128BITAES-CBC-BC
2.16.840.1.101.3.4.1.22
2.16.840.1.101.3.4.1.2