bcrypto / btok

Cryptographic tokens
4 stars 4 forks source link

Длина Le* в защищенной команде #90

Open agievich opened 1 year ago

agievich commented 1 year ago

В п. 12.4 сказано, что защищенная команда сопровождается суффиксом Le, который представляет собой один нулевой октет: Le = 0x00.

Это правило частично противоречит правилам ISO/IEC 7816-4, согласно которым:

  1. Суффикс Le* добавляется только, если в незащищенной команде поле Le непусто ("If a Le field is present, then a new Le field (containing only bytes set to '00') and a Le data object (SM tags '96', '97') shall be present").
  2. Если суффикс Le присутствует, то он должен иметь ту же форму (короткую или расширенную), что и поле Lc в защищенной команде ("[In any сommand-response pair comprising both Lc and Le fields (see ISO/IEC 7816-3), short and extended length fields shall not be combined: either both of them are short, or both of them are extended.").

Данные правила означают, что алгоритм формирования Le* должен быть следующим:

Обратим внимание, что форма Lc* может подправляться, чтобы соответствовать второму правилу ISO.

Предлагается внести в СТБ 34.101.79 поправку, в которой скорректировать способ формирования Le* в соответствии с приведенным алгоритмом.