Some fixes for emulation.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos 2024-01-01 20:56:36 +01:00
parent a9dc6fd7f8
commit b663f5bebf
No known key found for this signature in database
GPG key ID: C0095B7870A4CCD3
3 changed files with 5 additions and 5 deletions

View file

@ -72,7 +72,7 @@ uint16_t apdu_process(uint8_t itf, const uint8_t *buffer, uint16_t buffer_size)
if (buffer_size == 7) {
apdu.ne = (apdu.header[5] << 8) | apdu.header[6];
if (apdu.ne == 0) {
//apdu.ne = 65536; // All underlying architecture assumes payloads are 65535 as max
apdu.ne = 65536;
}
}
else {
@ -82,7 +82,7 @@ uint16_t apdu_process(uint8_t itf, const uint8_t *buffer, uint16_t buffer_size)
if (apdu.nc + 7 + 2 == buffer_size) {
apdu.ne = (apdu.header[buffer_size - 2] << 8) | apdu.header[buffer_size - 1];
if (apdu.ne == 0) {
//apdu.ne = 65536;
apdu.ne = 65536;
}
}
}

View file

@ -83,8 +83,8 @@ extern app_t *current_app;
PACK(struct apdu {
uint8_t *header;
uint16_t nc;
uint16_t ne;
uint32_t nc;
uint32_t ne;
uint8_t *data;
uint16_t sw;
uint8_t *rdata;

View file

@ -264,7 +264,7 @@ int driver_process_usb_packet_emul(uint8_t itf, uint16_t len) {
apdu_finish();
if (sent > 0) {
uint16_t ret = apdu_next();
DEBUG_PAYLOAD(rdata, ret);
DEBUG_PAYLOAD(apdu.rdata, ret);
emul_write(itf, ret);
}
}