2012-10-18 13 views
5

Pracuję na serwerze NodeJS MDM dla iOS. Na docs Apple, następujący kod Ruby jest podana:Rozpakowywanie ładunku danych PKCS # 7 za pomocą NodeJS?

p7sign = OpenSSL::PKCS7::PKCS7.new(req.body) 
    store = OpenSSL::X509::Store.new 
    p7sign.verify(nil, store, nil, OpenSSL::PKCS7::NOVERIFY) 
    signers = p7sign.signers 

Jaki byłby równowartość w NodeJS? Chodzi o to, aby uzyskać dostęp do p7sign.data, który zawiera plik plisty xml.

Czy jest to możliwe przy użyciu crypto lub zewnętrznej biblioteki węzłów (ursa itd.)?

+0

Znalazłeś rozwiązanie? Czy używałeś krypto, aby osiągnąć swój cel? – klefevre

Odpowiedz

0

Dobrym rozwiązaniem byłoby użycie child_process do bezpośredniego wywołania openssl. Robię to, aby sprawdzić poprawność plików iOS .mobileprovision.

komenda
$ openssl smime -verify -in FILE -inform der 

openssl musi być jabłko, pod warunkiem (nie z portów lub homebrew), tak, że można go znaleźć i podpisywania certyfikatów CA w pęku kluczy.

Nie próbowałem tego sam, ale biblioteka węzłów-forge zawiera implementację wielu algorytmów kryptograficznych.

https://npmjs.org/package/node-forge#pkcs7

+0

'-inform der' jest na wypadek, gdyby plik był w formacie DER (jak pliki .mobileprovision), w przeciwnym razie użyj' smime' lub 'pem'. – alberto

+0

Węzeł-węzeł nie wykonuje obecnie weryfikacji pkcs7. – gdw2

Powiązane problemy