Verifying cryptographic protocols: a symbolic model for cryptographic APIs for C