int _sc_card_add_symmetric_alg(sc_card_t *card, unsigned int algorithm, unsigned int key_length, unsigned long flags) { sc_algorithm_info_t info; memset(&info, 0, sizeof(info)); info.algorithm = algorithm; info.key_length = key_length; info.flags = flags; return _sc_card_add_algorithm(card, &info); }
int _sc_card_add_rsa_alg(sc_card_t *card, unsigned int key_length, unsigned long flags, unsigned long exponent) { sc_algorithm_info_t info; memset(&info, 0, sizeof(info)); info.algorithm = SC_ALGORITHM_RSA; info.key_length = key_length; info.flags = flags; info.u._rsa.exponent = exponent; return _sc_card_add_algorithm(card, &info); }
int _sc_card_add_ec_alg(sc_card_t *card, unsigned int key_length, unsigned long flags, unsigned long ext_flags) { sc_algorithm_info_t info; memset(&info, 0, sizeof(info)); info.algorithm = SC_ALGORITHM_EC; info.key_length = key_length; info.flags = flags; info.u._ec.ext_flags = ext_flags; return _sc_card_add_algorithm(card, &info); }
int _sc_card_add_ec_alg(sc_card_t *card, unsigned int key_length, unsigned long flags, unsigned long ext_flags, struct sc_object_id *curve_oid) { sc_algorithm_info_t info; memset(&info, 0, sizeof(info)); sc_init_oid(&info.u._ec.params.id); info.algorithm = SC_ALGORITHM_EC; info.key_length = key_length; info.flags = flags; info.u._ec.ext_flags = ext_flags; if (curve_oid) info.u._ec.params.id = *curve_oid; return _sc_card_add_algorithm(card, &info); }