1
2
3
4
5
6
7
8
9
10
11
12
|
1
2
3
4
5
6
7
8
9
10
11
12
|
-
+
|
/*
* Copyright (C) 1997-2000 Sensus Consulting Ltd.
* Matt Newman <[email protected]>
*
* $Header: /home/rkeene/tmp/cvs2fossil/../tcltls/tls/tls/tlsX509.c,v 1.2 2000/01/20 01:53:14 aborr Exp $
* $Header: /home/rkeene/tmp/cvs2fossil/../tcltls/tls/tls/tlsX509.c,v 1.3 2003/07/07 20:24:49 hobbs Exp $
*/
#include "tlsInt.h"
/*
* ASN1_UTCTIME_tostr --
*/
static char *
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
{
Tcl_Obj *certPtr = Tcl_NewListObj( 0, NULL);
int serial;
char subject[BUFSIZ];
char issuer[BUFSIZ];
char notBefore[BUFSIZ];
char notAfter[BUFSIZ];
#ifndef NO_SSL_SHA
int shai;
char sha_hash[SHA_DIGEST_LENGTH*2];
const char *shachars="0123456789ABCDEF";
#endif
serial = ASN1_INTEGER_get(X509_get_serialNumber(cert));
X509_NAME_oneline(X509_get_subject_name(cert),subject,sizeof(subject));
X509_NAME_oneline(X509_get_issuer_name(cert),issuer,sizeof(issuer));
strcpy( notBefore, ASN1_UTCTIME_tostr( X509_get_notBefore(cert) ));
strcpy( notAfter, ASN1_UTCTIME_tostr( X509_get_notAfter(cert) ));
#ifndef NO_SSL_SHA
for (shai=0;shai<SHA_DIGEST_LENGTH;shai++)
{
sha_hash[shai * 2]=shachars[(cert->sha1_hash[shai] & 0xF0) >> 4];
sha_hash[shai * 2 + 1]=shachars[(cert->sha1_hash[shai] & 0x0F)];
}
Tcl_ListObjAppendElement( interp, certPtr,
Tcl_NewStringObj( "sha1_hash", -1) );
Tcl_ListObjAppendElement( interp, certPtr,
Tcl_NewStringObj( sha_hash, SHA_DIGEST_LENGTH*2) );
#endif
Tcl_ListObjAppendElement( interp, certPtr,
Tcl_NewStringObj( "subject", -1) );
Tcl_ListObjAppendElement( interp, certPtr,
Tcl_NewStringObj( subject, -1) );
Tcl_ListObjAppendElement( interp, certPtr,
Tcl_NewStringObj( "issuer", -1) );
|