2012-10-18 34 views
5

Tôi đang làm việc trên máy chủ MDM NodeJS cho iOS. Trên tài liệu Apple, mã ruby ​​sau đây được cung cấp:Tải xuống dữ liệu PKCS # 7 với NodeJS?

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

Điều gì sẽ tương đương với NodeJS? Ý tưởng là truy cập p7sign.data có chứa một danh sách xml.

Điều này có thể sử dụng hoặc là crypto hoặc một nút ngoài lib (ursa, v.v ...) không?

+0

Bạn đã tìm giải pháp chưa? Bạn có sử dụng mật mã để đạt được mục tiêu của mình không? – klefevre

Trả lời

0

Một tùy chọn tốt là sử dụng child_process để gọi trực tiếp openssl. Tôi làm điều đó để xác thực các tệp .mobileprovision của iOS.

$ openssl smime -verify -in FILE -inform der 

Lệnh openssl cần phải được Apple cung cấp (không phải từ cổng hoặc homebrew) để có thể tìm thấy chứng chỉ ký và CA trong keychain.

Tôi chưa thử bản thân mình, nhưng thư viện giả mạo nút chứa một triển khai nhiều thuật toán mã hóa.

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

+0

'-inform der' là trong trường hợp tệp ở định dạng DER (như tệp .mobileprovision), nếu không hãy sử dụng' smime' hoặc 'pem'. – alberto

+0

nút giả mạo không thực hiện xác minh pkcs7 tại thời điểm này. – gdw2

Các vấn đề liên quan