2009-05-01 6 views

risposta

5

del seguente progetto sembra essere molto promettente:

http://www.chaosinmotion.com/wiki/index.php?title=ASN.1_Library

Esso è fornito sotto una licenza BSD-style liberale.

È piccolo, 41 classi che compila a 55 KiB.

Si compilato pulito senza dipendenze di Java 3.

+0

Poiché quel collegamento sembra essere marcito: le fonti sono disponibili all'indirizzo http://www.chaosinmotion.com/sources/asn.1.zip –

2

La libreria gratuita BouncyCastle fornisce l'analisi ASN.1 di basso livello. Non è necessario installare BC come provider per utilizzare le funzionalità ASN.1. Ha diverse versioni per 1.4 e versioni successive. Non ha dipendenze esterne. Poiché il pacchetto predefinito contiene tutte le classi del provider BC, è consigliabile riconfezionarlo se si desidera qualcosa di più compatto.

+0

È un'opzione valida, ma in realtà non sembra soddisfare il requisito di peso leggero (ritengo che il peso leggero sia inferiore a 50 K). –

+0

Sì, ho scritto la mia classe di decodificatore. Sono circa 200 righe di codice, forse. Lo uso da oltre 10 anni e mi piacerebbe rifattorizzarlo per fornire un'interfaccia diversa, ma ha sicuramente soddisfatto l'esigenza. – erickson

+0

@Erickson: Qualche possibilità tu voglia condividerlo? (Anche se è una priorità bassa per me ora che ho risolto i miei problemi immediati con un keystore PKCS # 12, quindi senza fretta). –

0

ho bisogno di essere in grado di analizzare qualsiasi tipo di dati ASN.1 in Krypt. Sebbene krypt sia un progetto Ruby, potresti voler dare un'occhiata allo JRuby extension - il codice per la gestione dell'analisi/codifica ASN.1 è scritto interamente in Java e abbastanza modulare per una facile estrazione.

Ho anche creato un Java-only version, ma mancano alcune delle funzionalità di livello superiore del primo. Ma dal momento che è conciso, forse è una buona opportunità per iniziare.

Entrambi sono privi di dipendenze aggiuntive e utilizzano solo la funzionalità JDK standard.

2

È possibile utilizzare jASN1. È concesso in licenza sotto LGPL e dovrebbe soddisfare tutte le tue esigenze. È anche molto efficiente.