http://developer.android.com/reference/android/provider/ContactsContract.Data.html
I haven’t confirmed this, but, I think you can still do it. The ability or inability to use it is irrelevant at this point – by the “builtin” mail program. However, I haven’t confirmed this, either; But, third parties could probably pick it up/recognize it, too.
But, yes, you’d probably have to create a ContentProvider. Gotta look into the existing mail program to see how they’re handling the Certs, now.
https://github.com/k9mail/k-9/wiki/FeatureList
https://github.com/k9mail/k-9/blob/master/src/com/fsck/k9/crypto/Apg.java
application/x-pkcs7-mime
QUOTE: Data kinds
Data is a generic table that can hold any kind of contact data. The kind of data stored in a given row is specified by the row’s MIMETYPE value, which determines the meaning of the generic columns DATA1 through DATA15. For example, if the data kind is Phone.CONTENT_ITEM_TYPE, then the column DATA1 stores the phone number, but if the data kind is Email.CONTENT_ITEM_TYPE, then DATA1 stores the email address. Sync adapters and applications can introduce their own data kinds.