Overview
| Comment: | Updated to not set "Le" when asking to sign/decrypt (discovered from
ActivClient APDU dump)
Reverted last commit where reads of 0 bytes were converted to no-ops |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
f27687387394cbb14222b94ac945068b |
| User & Date: | rkeene on 2010-05-17 20:20:16 |
| Other Links: | manifest | tags |
Context
|
2010-05-17
| ||
| 21:39 | Updated to deal with reads of unknown size check-in: a42647e45a user: rkeene tags: trunk | |
| 20:20 |
Updated to not set "Le" when asking to sign/decrypt (discovered from
ActivClient APDU dump)
Reverted last commit where reads of 0 bytes were converted to no-ops check-in: f276873873 user: rkeene tags: trunk | |
| 19:53 | Updated to treat a request of read of 0 bytes as a no-op. check-in: 45212cc4ca user: rkeene tags: trunk | |
Changes
Modified cackey.c from [84da4e7494] to [c23e82a84b].
| ︙ | ︙ | |||
1161 1162 1163 1164 1165 1166 1167 |
}
}
if (major_rc == 0x61) {
/* We need to READ */
CACKEY_DEBUG_PRINTF("Buffer read required");
| < < < < < < | 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 |
}
}
if (major_rc == 0x61) {
/* We need to READ */
CACKEY_DEBUG_PRINTF("Buffer read required");
pcsc_getresp_ret = cackey_send_apdu(slot, GSCIS_CLASS_ISO7816, GSCIS_INSTR_GET_RESPONSE, 0x00, 0x00, 0, NULL, minor_rc, respcode, respdata, &tmp_respdata_len);
if (pcsc_getresp_ret != CACKEY_PCSC_S_OK) {
CACKEY_DEBUG_PRINTF("Buffer read failed! Returning in failure");
/* End Smartcard Transaction */
cackey_end_transaction(slot);
|
| ︙ | ︙ | |||
1854 1855 1856 1857 1858 1859 1860 |
if (buflen > 255) {
CACKEY_DEBUG_PRINTF("Error. buflen is greater than 255 (buflen = %lu)", (unsigned long) buflen);
return(-1);
}
| < < < < < < | 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 |
if (buflen > 255) {
CACKEY_DEBUG_PRINTF("Error. buflen is greater than 255 (buflen = %lu)", (unsigned long) buflen);
return(-1);
}
if (slot == NULL) {
CACKEY_DEBUG_PRINTF("Error. slot is NULL");
return(-1);
}
if (buf == NULL) {
|
| ︙ | ︙ | |||
1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 |
cackey_select_file(slot, identity->pcsc_identity->file);
tmpbuf_s = tmpbuf;
while (tmpbuflen) {
if (tmpbuflen > 245) {
bytes_to_send = 245;
p1 = 0x80;
} else {
bytes_to_send = tmpbuflen;
p1 = 0x00;
}
send_ret = cackey_send_apdu(slot, GSCIS_CLASS_GLOBAL_PLATFORM, GSCIS_INSTR_SIGNDECRYPT, p1, 0x00, bytes_to_send, tmpbuf, le, &respcode, outbuf, &outbuflen);
if (send_ret != CACKEY_PCSC_S_OK) {
CACKEY_DEBUG_PRINTF("ADPU Sending Failed -- returning in error.");
if (respcode == 0x6982) {
| > > | 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 |
cackey_select_file(slot, identity->pcsc_identity->file);
tmpbuf_s = tmpbuf;
while (tmpbuflen) {
if (tmpbuflen > 245) {
bytes_to_send = 245;
p1 = 0x80;
le = 0x00;
} else {
bytes_to_send = tmpbuflen;
p1 = 0x00;
le = 0x00;
}
send_ret = cackey_send_apdu(slot, GSCIS_CLASS_GLOBAL_PLATFORM, GSCIS_INSTR_SIGNDECRYPT, p1, 0x00, bytes_to_send, tmpbuf, le, &respcode, outbuf, &outbuflen);
if (send_ret != CACKEY_PCSC_S_OK) {
CACKEY_DEBUG_PRINTF("ADPU Sending Failed -- returning in error.");
if (respcode == 0x6982) {
|
| ︙ | ︙ |