Сервер для создания/проверки pin-блоков по стандарту Format 0 (подробнее тут) на чистом С с использованием libuv и openssl.
Для обмена командами используется кастомный бинарный протокол. Запрос представляет собой следующую последовательность:
- 2 байта : длинна собщения
- 1 байт : команда, флаги полей в полезной нагрузке
- n байт : полезная нагрузка в зависимости от команды
Команды:
- PIN_BLOCK (00) - вычислить pin-блок из pan и pin в полезной нагрузке
- BATCH (01) - вычислить pin-блок для многих пар pan, pin [не реализовано]
- NEW_KEY (10) - Обновить ключ для шифрования pin-блока [не реализовано]
- CHECK (11) - проверить верно ли вычислен pin-block для пары pan,pin
Проект создавался скорее для учебных и развлекательных целей, а так же чтобы покопаться с бинарными протоколами. Тем не менее, возможно, кому-то будет полезен. Тестировалось только под Linux.