Ci sono molte possibilità.
Alcuni formati di file, come PDF come descritto da Keith, e Authenticode per gli eseguibili di Microsoft Windows, inseriscono la firma nel file, ma si assicurano che non copra se stessa, e forse non altri dati non critici.
Alcuni formati di file o messaggi, come XMLdsig e facoltativamente S / MIME CMS / PKCS7 e PGP, inseriscono sia i dati che la firma in una struttura di file più ampia in modo che possano essere facilmente separati, la firma verificata e i dati ( usato senza la firma). Il codice Java utilizza il formato JAR di Java, che è un file ZIP leggermente modificato: ogni classe (o altra risorsa) è una voce nel file JAR, i digest di tutte le classi sono elencati nel manifest che è anche una voce nel file JAR, e la firma del manifesto più certificati correlati sono memorizzati in due voci aggiuntive nel file JAR.
A volte le persone mettono semplicemente la firma in un file separato che è collegato al file di dati; S / MIME CMS / PKCS7 e PGP "detached" firme fanno questo. Ad esempio, un sito per il download di software potrebbe avere un file denominato superwondergizmo-1.2.3.tar
e la sua firma in un file denominato superwondergizmo-1.2.3.tar.sig
(o talvolta ...asc
per 'ARMored' aka ASCII PGP). Su Windows moderno con NTFS potrebbe avere senso usare uno stream supplementare per memorizzare la firma, ma non ho mai visto nessuno farlo; allo stesso modo per MacOS con il fork delle risorse; ma quelli di solito non funzionano per trasferimento , che è spesso importante al giorno d'oggi.