Ich benutze pkcs7, um ein Dokument zu signieren, und alles funktioniert gut, das Problem ist, dass der Befehl zum Überprüfen des Zeichens nicht funktioniert, immer false zurückgeben. Ich versuche, den Terminal-Befehl in die Datei zu verwenden und funktioniert gut.
Zeichenbefehl:
%Vor%Überprüfen Sie den Befehl:
%Vor%Terminalbefehl:
%Vor%
EDIT 1
Ich mache Tests in meinem Code und entdecke, ob ich mein Zeichen mit nur PKCS7_DETACHED oder PKCS7_BINARY erstelle, funktioniert das verify , aber beide zusammen erhalte ich den Fehler. Warum passiert das?
Hier mit PHP 7 kann ich Ihr Problem reproduzieren. Bei beiden Flags schlägt die Überprüfung fehl.
Vielleicht DIESE URL kann Ihnen helfen., das Teil spricht darüber.
SMIME -sign "detached" "" attachiert "den Inhalt ähnlich wie es ist -binär und text-kanonisiert ohne und signiert das. SMIME -verify erkennt "detached", aber (in multi_split) kanonisiert immer beide Teile vor der Verwendung von ihnen. Für Inhalte, die nicht kanonisch gesendet wurden (mit -sign -binary oder äquivalent) Dies ändert den signierten Inhalt und schlägt fehl. Inhalt, der ursprünglich kanonisch war kanonisch oder vom Sender kanonisiert) verifiziert und ähnlich ist Ausgabe, ohne festzustellen, ob der Absender es geändert hat.
In den Dokumenten können Sie lesen, dass der Parser nicht so intelligent ist:
BUGS
Der MIME-Parser ist nicht sehr clever: Er scheint die meisten Nachrichten zu verarbeiten das habe ich darauf geworfen aber es kann sich an anderen ersticken.
Ich hoffe, es hilft!
Tags und Links php php-openssl pkcs#7