Overview
| Comment: | Updated to use fewer APDUs when signing/decrypting |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
4f5638aabf730b4e68e424f84c7b31c1 |
| User & Date: | rkeene on 2015-03-05 17:40:19 |
| Other Links: | manifest | tags |
Context
|
2015-03-05
| ||
| 17:49 | Updated to set the output size after decompressing a certificate check-in: bc60cf4dca user: rkeene tags: trunk | |
| 17:40 | Updated to use fewer APDUs when signing/decrypting check-in: 4f5638aabf user: rkeene tags: trunk | |
| 16:20 | Updated ignores to ignore downloaded certificates and test driver check-in: d36685d176 user: rkeene tags: trunk | |
Changes
Modified cackey.c from [6ee4372cd9] to [a840779390].
| ︙ | ︙ | |||
2750 2751 2752 2753 2754 2755 2756 |
*
* NOTES
* ...
*
*/
static ssize_t cackey_signdecrypt(struct cackey_slot *slot, struct cackey_identity *identity, unsigned char *buf, size_t buflen, unsigned char *outbuf, size_t outbuflen, int padInput, int unpadOutput) {
cackey_pcsc_id_type id_type;
| | | 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 |
*
* NOTES
* ...
*
*/
static ssize_t cackey_signdecrypt(struct cackey_slot *slot, struct cackey_identity *identity, unsigned char *buf, size_t buflen, unsigned char *outbuf, size_t outbuflen, int padInput, int unpadOutput) {
cackey_pcsc_id_type id_type;
unsigned char dyn_auth_template[10], *dyn_auth_tmpbuf;
unsigned char *tmpbuf, *tmpbuf_s, *outbuf_s, *outbuf_p;
unsigned char bytes_to_send, p1, class;
unsigned char blocktype;
cackey_ret send_ret;
uint16_t respcode;
ssize_t retval = 0, unpadoffset;
size_t tmpbuflen, padlen, tmpoutbuflen, outbuf_len;
|
| ︙ | ︙ | |||
2885 2886 2887 2888 2889 2890 2891 | dyn_auth_template[4] = 0x82; dyn_auth_template[5] = 0x00; dyn_auth_template[6] = 0x81; dyn_auth_template[7] = 0x82; dyn_auth_template[8] = (tmpbuflen & 0xff00) >> 8; dyn_auth_template[9] = tmpbuflen & 0x00ff; | > > > | > > > > > > > > | 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 |
dyn_auth_template[4] = 0x82;
dyn_auth_template[5] = 0x00;
dyn_auth_template[6] = 0x81;
dyn_auth_template[7] = 0x82;
dyn_auth_template[8] = (tmpbuflen & 0xff00) >> 8;
dyn_auth_template[9] = tmpbuflen & 0x00ff;
dyn_auth_tmpbuf = malloc(tmpbuflen + sizeof(dyn_auth_template));
memcpy(dyn_auth_tmpbuf, dyn_auth_template, sizeof(dyn_auth_template));
memcpy(dyn_auth_tmpbuf + sizeof(dyn_auth_template), tmpbuf, tmpbuflen);
if (free_tmpbuf) {
free(tmpbuf);
}
tmpbuflen += sizeof(dyn_auth_template);
tmpbuf = dyn_auth_tmpbuf;
free_tmpbuf = 1;
break;
case CACKEY_ID_TYPE_CERT_ONLY:
break;
}
tmpbuf_s = tmpbuf;
outbuf_s = outbuf;
|
| ︙ | ︙ |