CSV Flight log verification API

Sem limite de taxa Público, sem autenticação

Visão geral

Os registos de voo CSV produzidos pelos nossos altímetros incluem uma assinatura de verificação criptográfica. Esta API verifica se um registo de voo é autêntico e exatamente como foi escrito pelo altímetro, ou se foi modificado.

A assinatura é gerada dentro do altímetro por firmware cifrado com AES-256, tornando a sua falsificação computacionalmente inviável. O firmware 1.52 e posterior assina o registo com uma assinatura Ed25519; o firmware mais antigo usa um hash baseado em SHA-256. Em ambos os casos, tanto os dados de voo como as definições do cabeçalho têm de permanecer inalterados para passar na verificação.

Atualmente suporta o altímetro Nano, com suporte para todos os dispositivos em breve. Também pode verificar registos com a ferramenta de envio.

Ponto final

POST https://www.altimetercloud.com/pt/api/csv_verify/ Parâmetro: csv

Envie por POST todo o registo de voo CSV, sem edições, para o ponto final acima. O conteúdo CSV deve ser enviado sob o parâmetro csv.

Resposta

A API devolve JSON. Em caso de sucesso, recebe o método de verificação usado e os detalhes do voo analisados:

✓ Verificado
{
  "success": true,
  "log_lines": 825,
  "input_bytes": 4187,
  "verify_method": "SHA-256",
  "firmware": "1.43b",
  "hardware": "2",
  "device_tag": "MyNano",
  "competitor_tag": "",
  "apogee": 2.54,
  "apogee_time": 826,
  "max_velocity": 5.910,
  "landing_m": 0.784,
  "landing_t": 2.253,
  "flight_unique_id": "e1eb3e800d780a0b69670f03a88e2f45c592b6e79065fc08cf83241530a60c5a"
}

Se o registo de voo não passar na verificação ou o pedido estiver vazio:

✗ Falhou
{
  "success": false,
  "log_lines": 825,
  "error": {
    "code": "400",
    "message": "Flight log failed verification (STEP=SHA256)"
  }
}
✗ Dados em falta
{
  "success": false,
  "error": {
    "code": "412",
    "message": "No flight log supplied as a POST using the parameter csv="
  }
}

Campos da resposta

CampoTipoDescrição
successbooleanSe o registo de voo passou na verificação
verify_methodstringMétodo que verificou o registo: Ed25519 (firmware 1.52+), HMAC-SHA256 (1.50 a 1.51) ou SHA-256 (mais antigo)
log_linesintegerNúmero de linhas de dados no registo de voo
input_bytesintegerTamanho do registo submetido em bytes
firmwarestringVersão do firmware a partir do cabeçalho do registo
hardwarestringRevisão de hardware a partir do cabeçalho do registo
device_tagstringA etiqueta do dispositivo a partir do registo
competitor_tagstringA etiqueta de concorrente, se presente (firmware 1.51+)
apogeefloatAltitude máxima em metros
apogee_timeintegerMomento do apogeu em milissegundos
max_velocityfloatVelocidade máxima de subida em metros por segundo
landing_mfloatAltura de aterragem em metros
landing_tfloatHora de aterragem em segundos
flight_unique_idstringO hash de assinatura do registo. Passe-o ao ponto final Informações de voo como hash. Tem 128 carateres hexadecimais para firmware 1.52+ (Ed25519), ou 64 para registos mais antigos
error.codestringCódigo de erro ao estilo HTTP (em caso de falha)
error.messagestringDescrição de erro legível (em caso de falha)

Zona de testes da API

Teste a API ao vivo. Pré-carregámos abaixo um registo de voo de exemplo de um Nano V1. Clique em Executar para o verificar, ou edite os dados para testar uma verificação falhada.

Corpo POST parâmetro: csv
https://www.altimetercloud.com/pt/api/csv_verify/