add ffasn1c example for RSPRO
This can help us for debugging using an independent decoder compared to asn1c Change-Id: I15293014cddb75190e7f848fff6d07a3401461ff
This commit is contained in:
parent
10f6c21736
commit
7b94dc231d
|
@ -0,0 +1,17 @@
|
|||
FFASN1C_LIBS = -L/usr/local/lib -lffasn1 -lffasn1_runtime_stdc
|
||||
FFASN1C_CFLAGS = -I/usr/local/include/ffasn1c
|
||||
|
||||
CFLAGS+=-Wall $(FFASN1C_CFLAGS)
|
||||
LIBS+=$(FFASN1C_LIBS)
|
||||
|
||||
main: main.o rspro.o
|
||||
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -o $@ -c $^
|
||||
|
||||
rspro.c: ../asn1/RSPRO.asn
|
||||
ffasn1c -o $@ $^
|
||||
|
||||
clean:
|
||||
@rm -f *.o main
|
|
@ -0,0 +1,39 @@
|
|||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <asn1defs.h>
|
||||
|
||||
#include "rspro.h"
|
||||
|
||||
|
||||
static void transcode(const uint8_t *buf, unsigned int len)
|
||||
{
|
||||
ASN1Error err;
|
||||
struct RsproPDU *pdu;
|
||||
int rc;
|
||||
char *gserbuf;
|
||||
|
||||
rc = asn1_ber_decode((void **)&pdu, asn1_type_RsproPDU, buf, len, &err);
|
||||
printf("rc=%d\n", rc);
|
||||
|
||||
rc = asn1_gser_encode((uint8_t **) &gserbuf, asn1_type_RsproPDU, pdu);
|
||||
printf("rc=%d\n", rc);
|
||||
printf("%s\n", gserbuf);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
uint8_t buf[2048];
|
||||
int fd, rc;
|
||||
|
||||
fd = open(argv[1], O_RDONLY);
|
||||
if (fd < 0)
|
||||
exit(1);
|
||||
rc = read(fd, buf, sizeof(buf));
|
||||
close(fd);
|
||||
|
||||
transcode(buf, rc);
|
||||
}
|
|
@ -0,0 +1,722 @@
|
|||
/* Automatically generated file - do not edit */
|
||||
|
||||
#include "asn1defs.h"
|
||||
#include "rspro.h"
|
||||
|
||||
const ASN1CType asn1_type_OperationTag[] = {
|
||||
(ASN1_CTYPE_INTEGER << ASN1_CTYPE_SHIFT) | 0x5800000 | 0x100001,
|
||||
0x0,
|
||||
0x7fffffff,
|
||||
(intptr_t)"OperationTag",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_BankId[] = {
|
||||
(ASN1_CTYPE_INTEGER << ASN1_CTYPE_SHIFT) | 0x5800000 | 0x2,
|
||||
0x0,
|
||||
0x3ff,
|
||||
(intptr_t)"BankId",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ClientId[] = {
|
||||
(ASN1_CTYPE_INTEGER << ASN1_CTYPE_SHIFT) | 0x5800000 | 0x2,
|
||||
0x0,
|
||||
0x3ff,
|
||||
(intptr_t)"ClientId",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ComponentType[] = {
|
||||
(ASN1_CTYPE_ENUMERATED << ASN1_CTYPE_SHIFT) | 0x4000000 | 0xa,
|
||||
3,
|
||||
(intptr_t)"remsimClient",
|
||||
(intptr_t)"remsimServer",
|
||||
(intptr_t)"remsimBankd",
|
||||
(intptr_t)"ComponentType",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ComponentName[] = {
|
||||
(ASN1_CTYPE_CHAR_STRING << ASN1_CTYPE_SHIFT) | 0x5800000 | 0x16,
|
||||
ASN1_CSTR_IA5String,
|
||||
0x1,
|
||||
0x20,
|
||||
1,
|
||||
0x0,
|
||||
0x7f,
|
||||
(intptr_t)"ComponentName",
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_0[] = {
|
||||
(ASN1_CTYPE_TAGGED << ASN1_CTYPE_SHIFT) | 0x0 | 0x100000,
|
||||
(intptr_t)asn1_type_ComponentName,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_1[] = {
|
||||
(ASN1_CTYPE_TAGGED << ASN1_CTYPE_SHIFT) | 0x0 | 0x100001,
|
||||
(intptr_t)asn1_type_ComponentName,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_2[] = {
|
||||
(ASN1_CTYPE_TAGGED << ASN1_CTYPE_SHIFT) | 0x0 | 0x100002,
|
||||
(intptr_t)asn1_type_ComponentName,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_3[] = {
|
||||
(ASN1_CTYPE_TAGGED << ASN1_CTYPE_SHIFT) | 0x0 | 0x100003,
|
||||
(intptr_t)asn1_type_ComponentName,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_4[] = {
|
||||
(ASN1_CTYPE_TAGGED << ASN1_CTYPE_SHIFT) | 0x0 | 0x100004,
|
||||
(intptr_t)asn1_type_ComponentName,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_5[] = {
|
||||
(ASN1_CTYPE_TAGGED << ASN1_CTYPE_SHIFT) | 0x0 | 0x100005,
|
||||
(intptr_t)asn1_type_ComponentName,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_6[] = {
|
||||
(ASN1_CTYPE_TAGGED << ASN1_CTYPE_SHIFT) | 0x0 | 0x100006,
|
||||
(intptr_t)asn1_type_ComponentName,
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ComponentIdentity[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10,
|
||||
9,
|
||||
sizeof(ComponentIdentity),
|
||||
|
||||
offsetof(ComponentIdentity, type) | 0x0,
|
||||
(intptr_t)asn1_type_ComponentType,
|
||||
0,
|
||||
(intptr_t)"type",
|
||||
|
||||
offsetof(ComponentIdentity, name) | 0x0,
|
||||
(intptr_t)asn1_type_ComponentName,
|
||||
0,
|
||||
(intptr_t)"name",
|
||||
|
||||
offsetof(ComponentIdentity, software) | 0x0,
|
||||
(intptr_t)asn1_type__local_0,
|
||||
0,
|
||||
(intptr_t)"software",
|
||||
|
||||
offsetof(ComponentIdentity, swVersion) | 0x0,
|
||||
(intptr_t)asn1_type__local_1,
|
||||
0,
|
||||
(intptr_t)"swVersion",
|
||||
|
||||
offsetof(ComponentIdentity, hwManufacturer) | 0x8000000,
|
||||
(intptr_t)asn1_type__local_2,
|
||||
offsetof(ComponentIdentity, hwManufacturer_option),
|
||||
(intptr_t)"hwManufacturer",
|
||||
|
||||
offsetof(ComponentIdentity, hwModel) | 0x8000000,
|
||||
(intptr_t)asn1_type__local_3,
|
||||
offsetof(ComponentIdentity, hwModel_option),
|
||||
(intptr_t)"hwModel",
|
||||
|
||||
offsetof(ComponentIdentity, hwSerialNr) | 0x8000000,
|
||||
(intptr_t)asn1_type__local_4,
|
||||
offsetof(ComponentIdentity, hwSerialNr_option),
|
||||
(intptr_t)"hwSerialNr",
|
||||
|
||||
offsetof(ComponentIdentity, hwVersion) | 0x8000000,
|
||||
(intptr_t)asn1_type__local_5,
|
||||
offsetof(ComponentIdentity, hwVersion_option),
|
||||
(intptr_t)"hwVersion",
|
||||
|
||||
offsetof(ComponentIdentity, fwVersion) | 0x8000000,
|
||||
(intptr_t)asn1_type__local_6,
|
||||
offsetof(ComponentIdentity, fwVersion_option),
|
||||
(intptr_t)"fwVersion",
|
||||
|
||||
(intptr_t)"ComponentIdentity",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_Ipv4Address[] = {
|
||||
(ASN1_CTYPE_OCTET_STRING << ASN1_CTYPE_SHIFT) | 0x5800000 | 0x100000,
|
||||
0x4,
|
||||
0x4,
|
||||
(intptr_t)"Ipv4Address",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_Ipv6Address[] = {
|
||||
(ASN1_CTYPE_OCTET_STRING << ASN1_CTYPE_SHIFT) | 0x5800000 | 0x100001,
|
||||
0x10,
|
||||
0x10,
|
||||
(intptr_t)"Ipv6Address",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_IpAddress[] = {
|
||||
(ASN1_CTYPE_CHOICE << ASN1_CTYPE_SHIFT) | 0x4000000 | 0x0,
|
||||
2,
|
||||
sizeof(IpAddress),
|
||||
offsetof(IpAddress, choice),
|
||||
offsetof(IpAddress, u),
|
||||
(intptr_t)asn1_type_Ipv4Address,
|
||||
(intptr_t)"ipv4",
|
||||
(intptr_t)asn1_type_Ipv6Address,
|
||||
(intptr_t)"ipv6",
|
||||
(intptr_t)"IpAddress",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_PortNumber[] = {
|
||||
(ASN1_CTYPE_INTEGER << ASN1_CTYPE_SHIFT) | 0x5800000 | 0x2,
|
||||
0x0,
|
||||
0xffff,
|
||||
(intptr_t)"PortNumber",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_IpPort[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x4000000 | 0x10,
|
||||
2,
|
||||
sizeof(IpPort),
|
||||
|
||||
offsetof(IpPort, ip) | 0x0,
|
||||
(intptr_t)asn1_type_IpAddress,
|
||||
0,
|
||||
(intptr_t)"ip",
|
||||
|
||||
offsetof(IpPort, port) | 0x0,
|
||||
(intptr_t)asn1_type_PortNumber,
|
||||
0,
|
||||
(intptr_t)"port",
|
||||
|
||||
(intptr_t)"IpPort",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ResultCode[] = {
|
||||
(ASN1_CTYPE_ENUMERATED << ASN1_CTYPE_SHIFT) | 0x6000000 | 0xa,
|
||||
7,
|
||||
0,
|
||||
(intptr_t)"ok",
|
||||
(intptr_t)"illegalClientId",
|
||||
(intptr_t)"illegalBankId",
|
||||
(intptr_t)"illegalSlotId",
|
||||
(intptr_t)"cardNotPresent",
|
||||
(intptr_t)"cardUnresponsive",
|
||||
(intptr_t)"cardTransmissionError",
|
||||
(intptr_t)"ResultCode",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_SlotNumber[] = {
|
||||
(ASN1_CTYPE_INTEGER << ASN1_CTYPE_SHIFT) | 0x5800000 | 0x2,
|
||||
0x0,
|
||||
0x3ff,
|
||||
(intptr_t)"SlotNumber",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ClientSlot[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10,
|
||||
2,
|
||||
sizeof(ClientSlot),
|
||||
|
||||
offsetof(ClientSlot, clientId) | 0x0,
|
||||
(intptr_t)asn1_type_ClientId,
|
||||
0,
|
||||
(intptr_t)"clientId",
|
||||
|
||||
offsetof(ClientSlot, slotNr) | 0x0,
|
||||
(intptr_t)asn1_type_SlotNumber,
|
||||
0,
|
||||
(intptr_t)"slotNr",
|
||||
|
||||
(intptr_t)"ClientSlot",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_BankSlot[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10,
|
||||
2,
|
||||
sizeof(BankSlot),
|
||||
|
||||
offsetof(BankSlot, bankId) | 0x0,
|
||||
(intptr_t)asn1_type_BankId,
|
||||
0,
|
||||
(intptr_t)"bankId",
|
||||
|
||||
offsetof(BankSlot, slotNr) | 0x0,
|
||||
(intptr_t)asn1_type_SlotNumber,
|
||||
0,
|
||||
(intptr_t)"slotNr",
|
||||
|
||||
(intptr_t)"BankSlot",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ATR[] = {
|
||||
(ASN1_CTYPE_OCTET_STRING << ASN1_CTYPE_SHIFT) | 0x5800000 | 0x4,
|
||||
0x1,
|
||||
0x37,
|
||||
(intptr_t)"ATR",
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_7[] = {
|
||||
(ASN1_CTYPE_BOOLEAN << ASN1_CTYPE_SHIFT) | 0x0 | 0x1,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_8[] = {
|
||||
(ASN1_CTYPE_BOOLEAN << ASN1_CTYPE_SHIFT) | 0x0 | 0x1,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_9[] = {
|
||||
(ASN1_CTYPE_BOOLEAN << ASN1_CTYPE_SHIFT) | 0x0 | 0x1,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_10[] = {
|
||||
(ASN1_CTYPE_BOOLEAN << ASN1_CTYPE_SHIFT) | 0x0 | 0x1,
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_TpduFlags[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10,
|
||||
4,
|
||||
sizeof(TpduFlags),
|
||||
|
||||
offsetof(TpduFlags, tpduHeaderPresent) | 0x0,
|
||||
(intptr_t)asn1_type__local_7,
|
||||
0,
|
||||
(intptr_t)"tpduHeaderPresent",
|
||||
|
||||
offsetof(TpduFlags, finalPart) | 0x0,
|
||||
(intptr_t)asn1_type__local_8,
|
||||
0,
|
||||
(intptr_t)"finalPart",
|
||||
|
||||
offsetof(TpduFlags, procByteContinueTx) | 0x0,
|
||||
(intptr_t)asn1_type__local_9,
|
||||
0,
|
||||
(intptr_t)"procByteContinueTx",
|
||||
|
||||
offsetof(TpduFlags, procByteContinueRx) | 0x0,
|
||||
(intptr_t)asn1_type__local_10,
|
||||
0,
|
||||
(intptr_t)"procByteContinueRx",
|
||||
|
||||
(intptr_t)"TpduFlags",
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_11[] = {
|
||||
(ASN1_CTYPE_BOOLEAN << ASN1_CTYPE_SHIFT) | 0x0 | 0x100000,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_12[] = {
|
||||
(ASN1_CTYPE_BOOLEAN << ASN1_CTYPE_SHIFT) | 0x0 | 0x100001,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_13[] = {
|
||||
(ASN1_CTYPE_BOOLEAN << ASN1_CTYPE_SHIFT) | 0x0 | 0x100002,
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_14[] = {
|
||||
(ASN1_CTYPE_BOOLEAN << ASN1_CTYPE_SHIFT) | 0x0 | 0x100003,
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_SlotPhysStatus[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10,
|
||||
4,
|
||||
sizeof(SlotPhysStatus),
|
||||
|
||||
offsetof(SlotPhysStatus, resetActive) | 0x0,
|
||||
(intptr_t)asn1_type__local_11,
|
||||
0,
|
||||
(intptr_t)"resetActive",
|
||||
|
||||
offsetof(SlotPhysStatus, vccPresent) | 0x8000000,
|
||||
(intptr_t)asn1_type__local_12,
|
||||
offsetof(SlotPhysStatus, vccPresent_option),
|
||||
(intptr_t)"vccPresent",
|
||||
|
||||
offsetof(SlotPhysStatus, clkActive) | 0x8000000,
|
||||
(intptr_t)asn1_type__local_13,
|
||||
offsetof(SlotPhysStatus, clkActive_option),
|
||||
(intptr_t)"clkActive",
|
||||
|
||||
offsetof(SlotPhysStatus, cardPresent) | 0x8000000,
|
||||
(intptr_t)asn1_type__local_14,
|
||||
offsetof(SlotPhysStatus, cardPresent_option),
|
||||
(intptr_t)"cardPresent",
|
||||
|
||||
(intptr_t)"SlotPhysStatus",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ConnectBankReq[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100000,
|
||||
3,
|
||||
sizeof(ConnectBankReq),
|
||||
|
||||
offsetof(ConnectBankReq, identity) | 0x0,
|
||||
(intptr_t)asn1_type_ComponentIdentity,
|
||||
0,
|
||||
(intptr_t)"identity",
|
||||
|
||||
offsetof(ConnectBankReq, bankId) | 0x0,
|
||||
(intptr_t)asn1_type_BankId,
|
||||
0,
|
||||
(intptr_t)"bankId",
|
||||
|
||||
offsetof(ConnectBankReq, numberOfSlots) | 0x0,
|
||||
(intptr_t)asn1_type_SlotNumber,
|
||||
0,
|
||||
(intptr_t)"numberOfSlots",
|
||||
|
||||
(intptr_t)"ConnectBankReq",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ConnectBankRes[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100001,
|
||||
2,
|
||||
sizeof(ConnectBankRes),
|
||||
|
||||
offsetof(ConnectBankRes, identity) | 0x0,
|
||||
(intptr_t)asn1_type_ComponentIdentity,
|
||||
0,
|
||||
(intptr_t)"identity",
|
||||
|
||||
offsetof(ConnectBankRes, result) | 0x0,
|
||||
(intptr_t)asn1_type_ResultCode,
|
||||
0,
|
||||
(intptr_t)"result",
|
||||
|
||||
(intptr_t)"ConnectBankRes",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ConnectClientReq[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100002,
|
||||
2,
|
||||
sizeof(ConnectClientReq),
|
||||
|
||||
offsetof(ConnectClientReq, identity) | 0x0,
|
||||
(intptr_t)asn1_type_ComponentIdentity,
|
||||
0,
|
||||
(intptr_t)"identity",
|
||||
|
||||
offsetof(ConnectClientReq, clientSlot) | 0x8000000,
|
||||
(intptr_t)asn1_type_ClientSlot,
|
||||
offsetof(ConnectClientReq, clientSlot_option),
|
||||
(intptr_t)"clientSlot",
|
||||
|
||||
(intptr_t)"ConnectClientReq",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ConnectClientRes[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100003,
|
||||
2,
|
||||
sizeof(ConnectClientRes),
|
||||
|
||||
offsetof(ConnectClientRes, identity) | 0x0,
|
||||
(intptr_t)asn1_type_ComponentIdentity,
|
||||
0,
|
||||
(intptr_t)"identity",
|
||||
|
||||
offsetof(ConnectClientRes, result) | 0x0,
|
||||
(intptr_t)asn1_type_ResultCode,
|
||||
0,
|
||||
(intptr_t)"result",
|
||||
|
||||
(intptr_t)"ConnectClientRes",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_CreateMappingReq[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100004,
|
||||
2,
|
||||
sizeof(CreateMappingReq),
|
||||
|
||||
offsetof(CreateMappingReq, client) | 0x0,
|
||||
(intptr_t)asn1_type_ClientSlot,
|
||||
0,
|
||||
(intptr_t)"client",
|
||||
|
||||
offsetof(CreateMappingReq, bank) | 0x0,
|
||||
(intptr_t)asn1_type_BankSlot,
|
||||
0,
|
||||
(intptr_t)"bank",
|
||||
|
||||
(intptr_t)"CreateMappingReq",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_CreateMappingRes[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100005,
|
||||
1,
|
||||
sizeof(CreateMappingRes),
|
||||
|
||||
offsetof(CreateMappingRes, result) | 0x0,
|
||||
(intptr_t)asn1_type_ResultCode,
|
||||
0,
|
||||
(intptr_t)"result",
|
||||
|
||||
(intptr_t)"CreateMappingRes",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_RemoveMappingReq[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100006,
|
||||
2,
|
||||
sizeof(RemoveMappingReq),
|
||||
|
||||
offsetof(RemoveMappingReq, client) | 0x0,
|
||||
(intptr_t)asn1_type_ClientSlot,
|
||||
0,
|
||||
(intptr_t)"client",
|
||||
|
||||
offsetof(RemoveMappingReq, bank) | 0x0,
|
||||
(intptr_t)asn1_type_BankSlot,
|
||||
0,
|
||||
(intptr_t)"bank",
|
||||
|
||||
(intptr_t)"RemoveMappingReq",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_RemoveMappingRes[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100007,
|
||||
1,
|
||||
sizeof(RemoveMappingRes),
|
||||
|
||||
offsetof(RemoveMappingRes, result) | 0x0,
|
||||
(intptr_t)asn1_type_ResultCode,
|
||||
0,
|
||||
(intptr_t)"result",
|
||||
|
||||
(intptr_t)"RemoveMappingRes",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ConfigClientReq[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100008,
|
||||
2,
|
||||
sizeof(ConfigClientReq),
|
||||
|
||||
offsetof(ConfigClientReq, clientSlot) | 0x0,
|
||||
(intptr_t)asn1_type_ClientSlot,
|
||||
0,
|
||||
(intptr_t)"clientSlot",
|
||||
|
||||
offsetof(ConfigClientReq, bankd) | 0x0,
|
||||
(intptr_t)asn1_type_IpPort,
|
||||
0,
|
||||
(intptr_t)"bankd",
|
||||
|
||||
(intptr_t)"ConfigClientReq",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ConfigClientRes[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100009,
|
||||
1,
|
||||
sizeof(ConfigClientRes),
|
||||
|
||||
offsetof(ConfigClientRes, result) | 0x0,
|
||||
(intptr_t)asn1_type_ResultCode,
|
||||
0,
|
||||
(intptr_t)"result",
|
||||
|
||||
(intptr_t)"ConfigClientRes",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_SetAtrReq[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10000a,
|
||||
2,
|
||||
sizeof(SetAtrReq),
|
||||
|
||||
offsetof(SetAtrReq, slot) | 0x0,
|
||||
(intptr_t)asn1_type_ClientSlot,
|
||||
0,
|
||||
(intptr_t)"slot",
|
||||
|
||||
offsetof(SetAtrReq, atr) | 0x0,
|
||||
(intptr_t)asn1_type_ATR,
|
||||
0,
|
||||
(intptr_t)"atr",
|
||||
|
||||
(intptr_t)"SetAtrReq",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_SetAtrRes[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10000b,
|
||||
1,
|
||||
sizeof(SetAtrRes),
|
||||
|
||||
offsetof(SetAtrRes, result) | 0x0,
|
||||
(intptr_t)asn1_type_ResultCode,
|
||||
0,
|
||||
(intptr_t)"result",
|
||||
|
||||
(intptr_t)"SetAtrRes",
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_15[] = {
|
||||
(ASN1_CTYPE_OCTET_STRING << ASN1_CTYPE_SHIFT) | 0x1000000 | 0x4,
|
||||
0x0,
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_TpduModemToCard[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10000c,
|
||||
4,
|
||||
sizeof(TpduModemToCard),
|
||||
|
||||
offsetof(TpduModemToCard, fromClientSlot) | 0x0,
|
||||
(intptr_t)asn1_type_ClientSlot,
|
||||
0,
|
||||
(intptr_t)"fromClientSlot",
|
||||
|
||||
offsetof(TpduModemToCard, toBankSlot) | 0x0,
|
||||
(intptr_t)asn1_type_BankSlot,
|
||||
0,
|
||||
(intptr_t)"toBankSlot",
|
||||
|
||||
offsetof(TpduModemToCard, flags) | 0x0,
|
||||
(intptr_t)asn1_type_TpduFlags,
|
||||
0,
|
||||
(intptr_t)"flags",
|
||||
|
||||
offsetof(TpduModemToCard, data) | 0x0,
|
||||
(intptr_t)asn1_type__local_15,
|
||||
0,
|
||||
(intptr_t)"data",
|
||||
|
||||
(intptr_t)"TpduModemToCard",
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_16[] = {
|
||||
(ASN1_CTYPE_OCTET_STRING << ASN1_CTYPE_SHIFT) | 0x1000000 | 0x4,
|
||||
0x0,
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_TpduCardToModem[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10000d,
|
||||
4,
|
||||
sizeof(TpduCardToModem),
|
||||
|
||||
offsetof(TpduCardToModem, fromBankSlot) | 0x0,
|
||||
(intptr_t)asn1_type_BankSlot,
|
||||
0,
|
||||
(intptr_t)"fromBankSlot",
|
||||
|
||||
offsetof(TpduCardToModem, toClientSlot) | 0x0,
|
||||
(intptr_t)asn1_type_ClientSlot,
|
||||
0,
|
||||
(intptr_t)"toClientSlot",
|
||||
|
||||
offsetof(TpduCardToModem, flags) | 0x0,
|
||||
(intptr_t)asn1_type_TpduFlags,
|
||||
0,
|
||||
(intptr_t)"flags",
|
||||
|
||||
offsetof(TpduCardToModem, data) | 0x0,
|
||||
(intptr_t)asn1_type__local_16,
|
||||
0,
|
||||
(intptr_t)"data",
|
||||
|
||||
(intptr_t)"TpduCardToModem",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_ClientSlotStatusInd[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10000e,
|
||||
3,
|
||||
sizeof(ClientSlotStatusInd),
|
||||
|
||||
offsetof(ClientSlotStatusInd, fromClientSlot) | 0x0,
|
||||
(intptr_t)asn1_type_ClientSlot,
|
||||
0,
|
||||
(intptr_t)"fromClientSlot",
|
||||
|
||||
offsetof(ClientSlotStatusInd, toBankSlot) | 0x0,
|
||||
(intptr_t)asn1_type_BankSlot,
|
||||
0,
|
||||
(intptr_t)"toBankSlot",
|
||||
|
||||
offsetof(ClientSlotStatusInd, slotPhysStatus) | 0x0,
|
||||
(intptr_t)asn1_type_SlotPhysStatus,
|
||||
0,
|
||||
(intptr_t)"slotPhysStatus",
|
||||
|
||||
(intptr_t)"ClientSlotStatusInd",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_BankSlotStatusInd[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x10000f,
|
||||
3,
|
||||
sizeof(BankSlotStatusInd),
|
||||
|
||||
offsetof(BankSlotStatusInd, fromBankSlot) | 0x0,
|
||||
(intptr_t)asn1_type_BankSlot,
|
||||
0,
|
||||
(intptr_t)"fromBankSlot",
|
||||
|
||||
offsetof(BankSlotStatusInd, toClientSlot) | 0x0,
|
||||
(intptr_t)asn1_type_ClientSlot,
|
||||
0,
|
||||
(intptr_t)"toClientSlot",
|
||||
|
||||
offsetof(BankSlotStatusInd, slotPhysStatus) | 0x0,
|
||||
(intptr_t)asn1_type_SlotPhysStatus,
|
||||
0,
|
||||
(intptr_t)"slotPhysStatus",
|
||||
|
||||
(intptr_t)"BankSlotStatusInd",
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_RsproPDUchoice[] = {
|
||||
(ASN1_CTYPE_CHOICE << ASN1_CTYPE_SHIFT) | 0x6000000 | 0x100002,
|
||||
16,
|
||||
0,
|
||||
sizeof(RsproPDUchoice),
|
||||
offsetof(RsproPDUchoice, choice),
|
||||
offsetof(RsproPDUchoice, u),
|
||||
(intptr_t)asn1_type_ConnectBankReq,
|
||||
(intptr_t)"connectBankReq",
|
||||
(intptr_t)asn1_type_ConnectBankRes,
|
||||
(intptr_t)"connectBankRes",
|
||||
(intptr_t)asn1_type_ConnectClientReq,
|
||||
(intptr_t)"connectClientReq",
|
||||
(intptr_t)asn1_type_ConnectClientRes,
|
||||
(intptr_t)"connectClientRes",
|
||||
(intptr_t)asn1_type_CreateMappingReq,
|
||||
(intptr_t)"createMappingReq",
|
||||
(intptr_t)asn1_type_CreateMappingRes,
|
||||
(intptr_t)"createMappingRes",
|
||||
(intptr_t)asn1_type_RemoveMappingReq,
|
||||
(intptr_t)"removeMappingReq",
|
||||
(intptr_t)asn1_type_RemoveMappingRes,
|
||||
(intptr_t)"removeMappingRes",
|
||||
(intptr_t)asn1_type_ConfigClientReq,
|
||||
(intptr_t)"configClientReq",
|
||||
(intptr_t)asn1_type_ConfigClientRes,
|
||||
(intptr_t)"configClientRes",
|
||||
(intptr_t)asn1_type_SetAtrReq,
|
||||
(intptr_t)"setAtrReq",
|
||||
(intptr_t)asn1_type_SetAtrRes,
|
||||
(intptr_t)"setAtrRes",
|
||||
(intptr_t)asn1_type_TpduModemToCard,
|
||||
(intptr_t)"tpduModemToCard",
|
||||
(intptr_t)asn1_type_TpduCardToModem,
|
||||
(intptr_t)"tpduCardToModem",
|
||||
(intptr_t)asn1_type_ClientSlotStatusInd,
|
||||
(intptr_t)"clientSlotStatusInd",
|
||||
(intptr_t)asn1_type_BankSlotStatusInd,
|
||||
(intptr_t)"bankSlotStatusInd",
|
||||
(intptr_t)"RsproPDUchoice",
|
||||
};
|
||||
|
||||
static const ASN1CType asn1_type__local_17[] = {
|
||||
(ASN1_CTYPE_INTEGER << ASN1_CTYPE_SHIFT) | 0x1800000 | 0x100000,
|
||||
0x0,
|
||||
0x20,
|
||||
};
|
||||
|
||||
const ASN1CType asn1_type_RsproPDU[] = {
|
||||
(ASN1_CTYPE_SEQUENCE << ASN1_CTYPE_SHIFT) | 0x4000000 | 0x10,
|
||||
3,
|
||||
sizeof(RsproPDU),
|
||||
|
||||
offsetof(RsproPDU, version) | 0x0,
|
||||
(intptr_t)asn1_type__local_17,
|
||||
0,
|
||||
(intptr_t)"version",
|
||||
|
||||
offsetof(RsproPDU, tag) | 0x0,
|
||||
(intptr_t)asn1_type_OperationTag,
|
||||
0,
|
||||
(intptr_t)"tag",
|
||||
|
||||
offsetof(RsproPDU, msg) | 0x0,
|
||||
(intptr_t)asn1_type_RsproPDUchoice,
|
||||
0,
|
||||
(intptr_t)"msg",
|
||||
|
||||
(intptr_t)"RsproPDU",
|
||||
};
|
||||
|
|
@ -0,0 +1,337 @@
|
|||
/* Automatically generated file - do not edit */
|
||||
#ifndef _FFASN1_RSPRO_H
|
||||
#define _FFASN1_RSPRO_H
|
||||
|
||||
#include "asn1defs.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef int OperationTag;
|
||||
|
||||
extern const ASN1CType asn1_type_OperationTag[];
|
||||
|
||||
typedef int BankId;
|
||||
|
||||
extern const ASN1CType asn1_type_BankId[];
|
||||
|
||||
typedef int ClientId;
|
||||
|
||||
extern const ASN1CType asn1_type_ClientId[];
|
||||
|
||||
typedef enum ComponentType {
|
||||
ComponentType_remsimClient,
|
||||
ComponentType_remsimServer,
|
||||
ComponentType_remsimBankd,
|
||||
} ComponentType;
|
||||
|
||||
extern const ASN1CType asn1_type_ComponentType[];
|
||||
|
||||
typedef ASN1String ComponentName;
|
||||
|
||||
extern const ASN1CType asn1_type_ComponentName[];
|
||||
|
||||
typedef struct ComponentIdentity {
|
||||
ComponentType type;
|
||||
ComponentName name;
|
||||
ComponentName software;
|
||||
ComponentName swVersion;
|
||||
BOOL hwManufacturer_option;
|
||||
ComponentName hwManufacturer;
|
||||
BOOL hwModel_option;
|
||||
ComponentName hwModel;
|
||||
BOOL hwSerialNr_option;
|
||||
ComponentName hwSerialNr;
|
||||
BOOL hwVersion_option;
|
||||
ComponentName hwVersion;
|
||||
BOOL fwVersion_option;
|
||||
ComponentName fwVersion;
|
||||
} ComponentIdentity;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_ComponentIdentity[];
|
||||
|
||||
typedef ASN1String Ipv4Address;
|
||||
|
||||
extern const ASN1CType asn1_type_Ipv4Address[];
|
||||
|
||||
typedef ASN1String Ipv6Address;
|
||||
|
||||
extern const ASN1CType asn1_type_Ipv6Address[];
|
||||
|
||||
typedef enum {
|
||||
IpAddress_ipv4,
|
||||
IpAddress_ipv6,
|
||||
} IpAddress_choice;
|
||||
|
||||
typedef struct IpAddress {
|
||||
IpAddress_choice choice;
|
||||
union {
|
||||
Ipv4Address ipv4;
|
||||
Ipv6Address ipv6;
|
||||
} u;
|
||||
} IpAddress;
|
||||
|
||||
extern const ASN1CType asn1_type_IpAddress[];
|
||||
|
||||
typedef int PortNumber;
|
||||
|
||||
extern const ASN1CType asn1_type_PortNumber[];
|
||||
|
||||
typedef struct IpPort {
|
||||
IpAddress ip;
|
||||
PortNumber port;
|
||||
} IpPort;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_IpPort[];
|
||||
|
||||
typedef enum ResultCode {
|
||||
ResultCode_ok,
|
||||
ResultCode_illegalClientId,
|
||||
ResultCode_illegalBankId,
|
||||
ResultCode_illegalSlotId,
|
||||
ResultCode_cardNotPresent,
|
||||
ResultCode_cardUnresponsive,
|
||||
ResultCode_cardTransmissionError,
|
||||
} ResultCode;
|
||||
|
||||
extern const ASN1CType asn1_type_ResultCode[];
|
||||
|
||||
typedef int SlotNumber;
|
||||
|
||||
extern const ASN1CType asn1_type_SlotNumber[];
|
||||
|
||||
typedef struct ClientSlot {
|
||||
ClientId clientId;
|
||||
SlotNumber slotNr;
|
||||
} ClientSlot;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_ClientSlot[];
|
||||
|
||||
typedef struct BankSlot {
|
||||
BankId bankId;
|
||||
SlotNumber slotNr;
|
||||
} BankSlot;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_BankSlot[];
|
||||
|
||||
typedef ASN1String ATR;
|
||||
|
||||
extern const ASN1CType asn1_type_ATR[];
|
||||
|
||||
typedef struct TpduFlags {
|
||||
BOOL tpduHeaderPresent;
|
||||
BOOL finalPart;
|
||||
BOOL procByteContinueTx;
|
||||
BOOL procByteContinueRx;
|
||||
} TpduFlags;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_TpduFlags[];
|
||||
|
||||
typedef struct SlotPhysStatus {
|
||||
BOOL resetActive;
|
||||
BOOL vccPresent_option;
|
||||
BOOL vccPresent;
|
||||
BOOL clkActive_option;
|
||||
BOOL clkActive;
|
||||
BOOL cardPresent_option;
|
||||
BOOL cardPresent;
|
||||
} SlotPhysStatus;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_SlotPhysStatus[];
|
||||
|
||||
typedef struct ConnectBankReq {
|
||||
ComponentIdentity identity;
|
||||
BankId bankId;
|
||||
SlotNumber numberOfSlots;
|
||||
} ConnectBankReq;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_ConnectBankReq[];
|
||||
|
||||
typedef struct ConnectBankRes {
|
||||
ComponentIdentity identity;
|
||||
ResultCode result;
|
||||
} ConnectBankRes;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_ConnectBankRes[];
|
||||
|
||||
typedef struct ConnectClientReq {
|
||||
ComponentIdentity identity;
|
||||
BOOL clientSlot_option;
|
||||
ClientSlot clientSlot;
|
||||
} ConnectClientReq;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_ConnectClientReq[];
|
||||
|
||||
typedef struct ConnectClientRes {
|
||||
ComponentIdentity identity;
|
||||
ResultCode result;
|
||||
} ConnectClientRes;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_ConnectClientRes[];
|
||||
|
||||
typedef struct CreateMappingReq {
|
||||
ClientSlot client;
|
||||
BankSlot bank;
|
||||
} CreateMappingReq;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_CreateMappingReq[];
|
||||
|
||||
typedef struct CreateMappingRes {
|
||||
ResultCode result;
|
||||
} CreateMappingRes;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_CreateMappingRes[];
|
||||
|
||||
typedef struct RemoveMappingReq {
|
||||
ClientSlot client;
|
||||
BankSlot bank;
|
||||
} RemoveMappingReq;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_RemoveMappingReq[];
|
||||
|
||||
typedef struct RemoveMappingRes {
|
||||
ResultCode result;
|
||||
} RemoveMappingRes;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_RemoveMappingRes[];
|
||||
|
||||
typedef struct ConfigClientReq {
|
||||
ClientSlot clientSlot;
|
||||
IpPort bankd;
|
||||
} ConfigClientReq;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_ConfigClientReq[];
|
||||
|
||||
typedef struct ConfigClientRes {
|
||||
ResultCode result;
|
||||
} ConfigClientRes;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_ConfigClientRes[];
|
||||
|
||||
typedef struct SetAtrReq {
|
||||
ClientSlot slot;
|
||||
ATR atr;
|
||||
} SetAtrReq;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_SetAtrReq[];
|
||||
|
||||
typedef struct SetAtrRes {
|
||||
ResultCode result;
|
||||
} SetAtrRes;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_SetAtrRes[];
|
||||
|
||||
typedef struct TpduModemToCard {
|
||||
ClientSlot fromClientSlot;
|
||||
BankSlot toBankSlot;
|
||||
TpduFlags flags;
|
||||
ASN1String data;
|
||||
} TpduModemToCard;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_TpduModemToCard[];
|
||||
|
||||
typedef struct TpduCardToModem {
|
||||
BankSlot fromBankSlot;
|
||||
ClientSlot toClientSlot;
|
||||
TpduFlags flags;
|
||||
ASN1String data;
|
||||
} TpduCardToModem;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_TpduCardToModem[];
|
||||
|
||||
typedef struct ClientSlotStatusInd {
|
||||
ClientSlot fromClientSlot;
|
||||
BankSlot toBankSlot;
|
||||
SlotPhysStatus slotPhysStatus;
|
||||
} ClientSlotStatusInd;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_ClientSlotStatusInd[];
|
||||
|
||||
typedef struct BankSlotStatusInd {
|
||||
BankSlot fromBankSlot;
|
||||
ClientSlot toClientSlot;
|
||||
SlotPhysStatus slotPhysStatus;
|
||||
} BankSlotStatusInd;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_BankSlotStatusInd[];
|
||||
|
||||
typedef enum {
|
||||
RsproPDUchoice_connectBankReq,
|
||||
RsproPDUchoice_connectBankRes,
|
||||
RsproPDUchoice_connectClientReq,
|
||||
RsproPDUchoice_connectClientRes,
|
||||
RsproPDUchoice_createMappingReq,
|
||||
RsproPDUchoice_createMappingRes,
|
||||
RsproPDUchoice_removeMappingReq,
|
||||
RsproPDUchoice_removeMappingRes,
|
||||
RsproPDUchoice_configClientReq,
|
||||
RsproPDUchoice_configClientRes,
|
||||
RsproPDUchoice_setAtrReq,
|
||||
RsproPDUchoice_setAtrRes,
|
||||
RsproPDUchoice_tpduModemToCard,
|
||||
RsproPDUchoice_tpduCardToModem,
|
||||
RsproPDUchoice_clientSlotStatusInd,
|
||||
RsproPDUchoice_bankSlotStatusInd,
|
||||
} RsproPDUchoice_choice;
|
||||
|
||||
typedef struct RsproPDUchoice {
|
||||
RsproPDUchoice_choice choice;
|
||||
union {
|
||||
ConnectBankReq connectBankReq;
|
||||
ConnectBankRes connectBankRes;
|
||||
ConnectClientReq connectClientReq;
|
||||
ConnectClientRes connectClientRes;
|
||||
CreateMappingReq createMappingReq;
|
||||
CreateMappingRes createMappingRes;
|
||||
RemoveMappingReq removeMappingReq;
|
||||
RemoveMappingRes removeMappingRes;
|
||||
ConfigClientReq configClientReq;
|
||||
ConfigClientRes configClientRes;
|
||||
SetAtrReq setAtrReq;
|
||||
SetAtrRes setAtrRes;
|
||||
TpduModemToCard tpduModemToCard;
|
||||
TpduCardToModem tpduCardToModem;
|
||||
ClientSlotStatusInd clientSlotStatusInd;
|
||||
BankSlotStatusInd bankSlotStatusInd;
|
||||
} u;
|
||||
} RsproPDUchoice;
|
||||
|
||||
extern const ASN1CType asn1_type_RsproPDUchoice[];
|
||||
|
||||
typedef struct RsproPDU {
|
||||
int version;
|
||||
OperationTag tag;
|
||||
RsproPDUchoice msg;
|
||||
} RsproPDU;
|
||||
|
||||
|
||||
extern const ASN1CType asn1_type_RsproPDU[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _FFASN1_RSPRO_H */
|
Loading…
Reference in New Issue