Meus 2 cents:
Eh um pouco complicado - ate achei este aqui que oferece o servico:
https://www.instagram.com/fleetmaxgestao/p/DIJXDGPhv4D/
Mas falando um pouco como funciona:
- O QR Code da CNH eh chamado QR CODE VIO:
O Vio é um sistema de certificação de autenticidade de documentos de identificação. Documentos compatíveis portam o QR Code Vio, um QR Code que replica os dados contidos no documento utilizando encriptação forte para garantir a autenticidade dos dados. Além disso QR Codes Vio são encriptados na fonte a partir de informações fornecidas pela própria entidade emissora do documento, garantindo o não-repúdio.
Serve nao apenas para CNH, mas outros documentos que usem o mesmo formato.
Mais informacoes em:
https://apicenter.estaleiro.serpro.gov.br/documentacao/vio-decode/pt/
https://apicenter.estaleiro.serpro.gov.br/documentacao/vio-decode/pt/#o-que-e-o-vio
Agora, o formato binario para tentar ler, ver o certificado e tentar tirar a informacao ? tambem nao achei.
Ate tem o exemplo de informacao que guarda na CNH, mas o formato de decodificacao nao (so a chamada de API).
https://apicenter.estaleiro.serpro.gov.br/documentacao/vio-decode/pt/exemplos/
"data" : {
"nome" : "string",
"nome_civil" : "string",
"identidade" : "string",
"cpf" : "string",
"data_nascimento" : "string",
"filiacao_pai" : "string",
"filiacao_mae" : "string",
"permissao" : "string",
"acc" : "string",
"categoria" : "string",
"numero_registro" : "string",
"data_validade" : "string",
"data_primeira_habilitacao" : "string",
"observacoes" : "string",
"local_emissao" : "string",
"uf_emissao" : "string",
"data_emissao" : "string",
"numero_validacao_cnh" : "string",
"numero_renach" : "string"
},
Cita tambem que o leitor de qr code nao pode tentar converter para texto, uma vez que eh binario (criptografado):
Exemplo de leitura de QRCode a partir do dispositivo mobile
A integração pode ser feita facilmente em dispositivos móveis como smartphones e tablets, mas NUNCA deve ser usado um aplicativo genérico de leitura de QR Code, pois estes sempre interpretam a informação e tentam convertê-la para texto, inutilizando os dados.
A API do Vio precisa dos dados criptografados existentes no QRCode Vio para permitir a decodificação do mesmo. A tentativa de tratamento do conteúdo do QRCode como Texto, String, URL ou outro tipo de dado viola a integridade dos dados e impede a decodificação via API Vio Decode.
No final da pagina tem alguns codigos de exemplo.
EDIT: Fiz o decode a partir do exemplo:
imagem de exemplo CNH:
https://apicenter.estaleiro.serpro.gov.br/documentacao/vio-decode/pt/qrcodes/cnh-demo.png
Decode online:
https://zxing.org/w/decode.jspx
Coloquei o endereco da imagem de exemplo e mandei decodificar - funcionou, mas trouxe o conteudo binario.