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.