aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-11-27 17:10:37 +0100
committerMartin Willi <martin@revosec.ch>2012-12-19 10:32:08 +0100
commit9afbe59953889e14aa3c3846b90ae49442f2c552 (patch)
treefb73653bffaadf6639be9237ed1070b3edf8c50b /src
parentd3d706f4fc7119c40bbc1a7941264c80f6b6e3b9 (diff)
downloadstrongswan-9afbe59953889e14aa3c3846b90ae49442f2c552.tar.bz2
strongswan-9afbe59953889e14aa3c3846b90ae49442f2c552.tar.xz
pki --pkcs7 --verify shows prints the signing time, if available
Diffstat (limited to 'src')
-rw-r--r--src/pki/commands/pkcs7.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/pki/commands/pkcs7.c b/src/pki/commands/pkcs7.c
index 7e2d6aa60..30968a6c5 100644
--- a/src/pki/commands/pkcs7.c
+++ b/src/pki/commands/pkcs7.c
@@ -15,6 +15,8 @@
#include "pki.h"
+#include <asn1/oid.h>
+#include <asn1/asn1.h>
#include <credentials/containers/pkcs7.h>
#include <credentials/sets/mem_cred.h>
@@ -71,10 +73,12 @@ static bool write_to_stream(FILE *stream, chunk_t data)
static int verify(chunk_t chunk)
{
container_t *container;
+ pkcs7_t *pkcs7;
enumerator_t *enumerator;
certificate_t *cert;
auth_cfg_t *auth;
chunk_t data;
+ time_t t;
bool verified = FALSE;
container = lib->creds->create(lib->creds, CRED_CONTAINER, CONTAINER_PKCS7,
@@ -92,6 +96,7 @@ static int verify(chunk_t chunk)
return 1;
}
+ pkcs7 = (pkcs7_t*)container;
enumerator = container->create_signature_enumerator(container);
while (enumerator->enumerate(enumerator, &auth))
{
@@ -99,7 +104,18 @@ static int verify(chunk_t chunk)
cert = auth->get(auth, AUTH_RULE_SUBJECT_CERT);
if (cert)
{
- fprintf(stderr, "signed by '%Y'\n", cert->get_subject(cert));
+ fprintf(stderr, "signed by '%Y'", cert->get_subject(cert));
+
+ if (pkcs7->get_attribute(pkcs7, OID_PKCS9_SIGNING_TIME,
+ enumerator, &data))
+ {
+ t = asn1_to_time(&data, ASN1_UTCTIME);
+ if (t != UNDEFINED_TIME)
+ {
+ fprintf(stderr, " at %T", &t, FALSE);
+ }
+ }
+ fprintf(stderr, "\n");
}
}
enumerator->destroy(enumerator);