CSV Flight log verification API

Bez limitu zapytań Publiczne, bez uwierzytelniania

Przegląd

Dzienniki lotu CSV tworzone przez nasze wysokościomierze zawierają kryptograficzny podpis weryfikacyjny. To API sprawdza, czy dziennik lotu jest autentyczny i dokładnie taki, jak zapisał go wysokościomierz, czy też został zmodyfikowany.

Podpis jest generowany wewnątrz wysokościomierza przez oprogramowanie szyfrowane AES-256, co czyni jego sfałszowanie obliczeniowo niewykonalnym. Oprogramowanie 1.52 i nowsze podpisuje dziennik podpisem Ed25519; starsze oprogramowanie używa skrótu opartego na SHA-256. W obu przypadkach zarówno dane lotu, jak i ustawienia nagłówka muszą pozostać niezmienione, aby przejść weryfikację.

Obecnie obsługiwany jest wysokościomierz Nano, a obsługa wszystkich urządzeń pojawi się wkrótce. Dzienniki możesz też zweryfikować za pomocą narzędzia przesyłania.

Punkt końcowy

POST https://www.altimetercloud.com/po/api/csv_verify/ Parametr: csv

Wyślij metodą POST cały dziennik lotu CSV, niezmieniony, do powyższego punktu końcowego. Treść CSV należy wysłać pod parametrem csv.

Odpowiedź

API zwraca JSON. W przypadku powodzenia otrzymasz użytą metodę weryfikacji oraz odczytane szczegóły lotu:

✓ Zweryfikowano
{
  "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"
}

Jeśli dziennik lotu nie przejdzie weryfikacji lub żądanie jest puste:

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

Pola odpowiedzi

PoleTypOpis
successbooleanCzy dziennik lotu przeszedł weryfikację
verify_methodstringMetoda, która zweryfikowała dziennik: Ed25519 (oprogramowanie 1.52+), HMAC-SHA256 (1.50 do 1.51) lub SHA-256 (starsze)
log_linesintegerLiczba wierszy danych w dzienniku lotu
input_bytesintegerRozmiar przesłanego dziennika w bajtach
firmwarestringWersja oprogramowania z nagłówka dziennika
hardwarestringWersja sprzętu z nagłówka dziennika
device_tagstringEtykieta urządzenia z dziennika
competitor_tagstringEtykieta zawodnika, jeśli obecna (oprogramowanie 1.51+)
apogeefloatMaksymalna wysokość w metrach
apogee_timeintegerCzas apogeum w milisekundach
max_velocityfloatMaksymalna prędkość wznoszenia w metrach na sekundę
landing_mfloatWysokość lądowania w metrach
landing_tfloatCzas lądowania w sekundach
flight_unique_idstringHash podpisu dziennika. Przekaż go do punktu końcowego Informacje o locie jako hash. Ma 128 znaków szesnastkowych dla oprogramowania 1.52+ (Ed25519) lub 64 dla starszych dzienników
error.codestringKod błędu w stylu HTTP (w razie niepowodzenia)
error.messagestringCzytelny opis błędu (w razie niepowodzenia)

Środowisko testowe API

Przetestuj API na żywo. Poniżej wczytaliśmy przykładowy dziennik lotu Nano V1. Kliknij Uruchom, aby go zweryfikować, lub zmień dane, aby przetestować nieudaną weryfikację.

Treść POST parametr: csv
https://www.altimetercloud.com/po/api/csv_verify/