+
+
+ if($_SERVER['HTTPS']!="on") { ?>
+
+
+ } ?>
+
+
+
+
SSL Certificate Details for =$ref?>
+ if($invalid == 0) { ?>
+
+ Status: Valid
+ Valid From: =$cert['issued']?> GMT
+ Valid To: =$cert['expire']?> GMT
+ Subject: =substr($cert['subject'],0,80)?>
+ Organisation: if($org == 0) { ?>N/A } else { echo $orgi['O'].", ".$orgi['L']." ".$orgi['ST']." ".$orgi['C']; } ?>
+ Verification: if($user['total'] >= 50) { echo "Person had been assured at time of issue with at least 50 points."; }
+ else if($org == 1) { ?>This organisation was assured at the time the certificate was issued. } ?>
+ } else { ?>
+
This site has potentially abused CAcert logos and Copyrights, please report it so we may further investigate.
+ } ?>
+
Problem with this site? Please report it
+
+
+
+
diff --git a/stamp/displogo.php b/stamp/displogo.php
new file mode 100644
index 0000000..4ad092f
--- /dev/null
+++ b/stamp/displogo.php
@@ -0,0 +1,53 @@
+
+ $img = "/www/stamp/images/CAverify.png";
+ $arr = explode("//", mysql_real_escape_string(trim($_REQUEST['refer'])), 2);
+ $arr = explode("/", $arr['1'], 2);
+ $ref = $arr['0'];
+
+ header('Content-type: image/png');
+ $im = imagecreatefrompng($img);
+
+ $query = "select * from `domlink`,`domains`,`domaincerts`
+ where `domlink`.`domid`=`domains`.`id` and `domlink`.`certid`=`domaincerts`.`id` and `domaincerts`.`revoked`=0 and
+ `domaincerts`.`subject` like '%subjectAltName=DNS:$ref/%' order by `domaincerts`.`id`";
+ $res = mysql_query($query);
+ if(mysql_num_rows($res) <= 0)
+ {
+ $bits = explode(".", $ref);
+ for($i = 1; $i < count($bits); $i++)
+ {
+ if($ref2 != "")
+ $ref2 .= ".";
+ $ref2 .= $bits[$i];
+ }
+ $query = "select * from `domlink`,`domains`,`domaincerts`
+ where `domlink`.`domid`=`domains`.`id` and `domlink`.`certid`=`domaincerts`.`id` and `domaincerts`.`revoked`=0 and
+ (`domaincerts`.`subject` like '%subjectAltName=DNS:$ref2/%' or `domaincerts`.`subject` like '%subjectAltName=DNS:*.$ref2/%')
+ order by `domaincerts`.`id`";
+ $res = mysql_query($query);
+ if(mysql_num_rows($res) <= 0)
+ {
+ $query = "select * from `orgdomaincerts`,`orgdomlink`,`orgdomains` where `orgdomaincerts`.`revoked`=0 and
+ (`orgdomaincerts`.`subject` like '%=$ref%' or `orgdomaincerts`.`subject` like '%=*.$ref2%') and
+ `orgdomaincerts`.`id`=`orgdomlink`.`orgcertid` and `orgdomlink`.`orgdomid`=`orgdomains`.`id`";
+ $res = mysql_query($query);
+ if(mysql_num_rows($res) <= 0)
+ {
+ $tc = imagecolorallocate ($im, 255, 0, 0);
+ imagestring ($im, 2, 1, 30, "INVALID DOMAIN", $tc);
+ imagestring ($im, 2, 1, 45, "Click to Report", $tc);
+ imagepng($im);
+ exit;
+ }
+ }
+ }
+
+ $tz = intval($_REQUEST['tz']);
+ $now = date("Y-m-d", gmmktime("U") + ($tz * 3600));
+
+ $tc = imagecolorallocate ($im, 0, 0, 0);
+ imagestring ($im, 4, 1, 27, "Valid Cert!", $tc);
+ imagestring ($im, 1, 7, 42, "Click to Verify", $tc);
+ imagestring ($im, 1, 20, 52, $now, $tc);
+ imagepng($im);
+?>
diff --git a/stamp/images/CAverify.png b/stamp/images/CAverify.png
new file mode 100644
index 0000000..ab5c1ea
Binary files /dev/null and b/stamp/images/CAverify.png differ
diff --git a/stamp/index.php b/stamp/index.php
new file mode 100644
index 0000000..82083b5
--- /dev/null
+++ b/stamp/index.php
@@ -0,0 +1,37 @@
+
+
+
+
CAcert.org Site Stamp HOWTO!
+
+
+
+
+
+
+ if($_SERVER['HTTPS']!="on") { ?>
+
+
+ } ?>
+
+
+
+
CAcert.org Site Stamp HOWTO!
+
The CAcert Site Stamp Programme is a very useful tool for site owners everywhere, it allows you yet another option to prevent people
+ from stealing your content or making a fake site to pretend to be your site to carry out a phishing attack against your customers.
+
To add the CAcert logo to your site you need to register for a CAcert server certificate, then add the
+ following line somewhere on your website:
+
<script type="text/javascript" src="http<? if($_SERVER['HTTPS']=="on") { echo "s"; } ?>://stamp.cacert.org/showlogo.php"></script>
+
+
+
+
+
diff --git a/stamp/report.php b/stamp/report.php
new file mode 100644
index 0000000..f9125bc
--- /dev/null
+++ b/stamp/report.php
@@ -0,0 +1,95 @@
+
+ function clean($key)
+ {
+ return(mysql_real_escape_string(strip_tags(trim($_REQUEST[$key]))));
+ }
+
+ $arr = explode("//", mysql_real_escape_string(trim($_REQUEST['refer'])), 2);
+ $arr = explode("/", $arr['1'], 2);
+ $ref = $arr['0'];
+
+ $refer = clean('refer');
+ $name = clean('name');
+ $email = clean('email');
+ $comment = clean('comment');
+ $reason = clean('reason');
+ $process = clean('process');
+
+ if($process != "")
+ {
+ $checkemail = checkEmail($email);
+ if($checkemail != "OK")
+ {
+ $errmsg = $checkemail;
+ $process = "";
+ }
+ }
+
+ if($process != "")
+ {
+ $IP = mysql_real_escape_string(trim($_SERVER['REMOTE_ADDR']));
+ $iplong = ip2long($IP);
+ mysql_query("insert into `abusereports` set `when`=NOW(), `IP`='$iplong', `url`='$refer', `name`='$name', `email`='$email',
+ `comment`='$comment', `reason`='$reason'");
+ $id = mysql_insert_id();
+
+ $body = "New Abuse Report has been lodged via the the Stamp Interface:\n\n";
+ $body .= "Reported ID: $id\n";
+ $body .= "Reported IP: $IP\n";
+ $body .= "From: $name <$email>\n";
+ $body .= "URL: $refer\n";
+ $body .= "Reason: $reason\n";
+ $body .= "Comment: $comment\n";
+
+ sendmail("cacert-abuse@lists.cacert.org,$email", "[CAcert.org] Abuse Report.", $body, "website@cacert.org", "", "", "CAcert Website");
+ }
+
+?>
+
+
+
CAcert.org Abuse Report!
+
+
+
+
+
+
+ if($_SERVER['HTTPS']!="on") { ?>
+
+
+ } ?>
+
+
+
+
Report abuse for =$ref?>
+ if($process == "") { ?>
+ if($errmsg != "") { ?>
=$errmsg?>
} else { ?>
} ?>
+
+ } else { ?>
+
We thank you for your attention to detail, your report has been accepted and we will tend to your report as soon as humanly possible. You will receive a confirmation of your report by email.
+ } ?>
+
+
+
+
diff --git a/stamp/showlogo.php b/stamp/showlogo.php
new file mode 100644
index 0000000..8450f79
--- /dev/null
+++ b/stamp/showlogo.php
@@ -0,0 +1,13 @@
+
+ if($_SERVER['HTTPS']=="on")
+ $URI = "http://";
+ else
+ $URI = "https://";
+?>
+var curDateTime = new Date();
+var tz = -(curDateTime.getTimezoneOffset()/60);
+document.write("");
+document.write("
");
+document.write("");
diff --git a/stamp/style.css b/stamp/style.css
new file mode 100644
index 0000000..c0e4422
--- /dev/null
+++ b/stamp/style.css
@@ -0,0 +1,619 @@
+/***********************************************/
+/* emx_nav_right.css */
+/* Use with template Halo_rightNav.html */
+/***********************************************/
+
+/***********************************************/
+/* HTML tag styles */
+/***********************************************/
+body{
+ font-family: Arial,sans-serif;
+ color: #333333;
+ line-height: 1.166;
+ margin: 0px;
+ padding: 0px;
+ background: #cccccc;
+/* url("/siteimages/bg_grad.jpg") fixed; */
+}
+
+/******* hyperlink and anchor tag styles *******/
+
+a:link, a:visited{
+ color: #005FA9;
+ text-decoration: none;
+}
+
+a:hover{
+ text-decoration: underline;
+}
+
+/************** header tag styles **************/
+
+h1{
+ font: bold 120% Arial,sans-serif;
+ color: #334d55;
+ margin: 0px;
+ padding: 0px;
+}
+
+h2{
+ font: bold 114% Arial,sans-serif;
+ color: #006699;
+ margin: 0px;
+ padding: 0px;
+}
+
+h3{
+ font: bold 100% Arial,sans-serif;
+ color: #334d55;
+ margin: 0px;
+ padding: 0px;
+ cursor: pointer;
+/* cursor: hand; */
+}
+
+h4{
+ font: bold 100% Arial,sans-serif;
+ color: #333333;
+ margin: 0px;
+ padding: 0px;
+}
+
+h5{
+ font: 100% Arial,sans-serif;
+ color: #334d55;
+ margin: 0px;
+ padding: 0px;
+}
+
+
+/*************** list tag styles ***************/
+
+ul.menu {
+list-style: none;
+margin :0px 0px 0px 15px;
+padding-left: 5px;
+border-left: 1px dotted #000;
+}
+
+ul.top {
+list-style: none;
+margin: 0px 0px 0px 15px;
+padding-left: 5px;
+border-left: 0px;
+}
+
+ul {
+list-style: none;
+margin: 0px 0px 0px 15px;
+padding-left: 5px;
+border-left: 1px dotted #000;
+}
+
+/***********************************************/
+/* Layout Divs */
+/***********************************************/
+#pagecell1{
+ position:absolute;
+ top: 2%;
+ left: 2%;
+ right: 2%;
+ width: 96%;
+ background-color: #ffffff;
+}
+
+#tl {
+ position:absolute;
+ top: -1px;
+ left: -1px;
+ margin: 0px;
+ padding: 0px;
+ z-index: 100;
+}
+
+#tr {
+ position:absolute;
+ top: -1px;
+ right: -1px;
+ margin: 0px;
+ padding: 0px;
+ z-index: 100;
+}
+
+#masthead{
+ position: absolute;
+ top: 0px;
+ left: 2%;
+ right: 2%;
+ width:95.6%;
+
+}
+
+#pageNav{
+ float: right;
+ width:178px;
+ padding: 0px;
+ background-color: #F5f7f7;
+ border-left: 1px solid #cccccc;
+ font: small Verdana,sans-serif;
+}
+
+#content{
+ padding: 0px 10px 0px 0px;
+ margin:0px 0px 0px 0px;
+}
+
+
+/***********************************************/
+/* Component Divs */
+/***********************************************/
+#siteName{
+ margin: 0px;
+ padding: 16px 0px 8px 0px;
+ color: #ffffff;
+ font-weight: normal;
+}
+
+/************** utility styles *****************/
+
+#utility{
+ font: 75% Verdana,sans-serif;
+ position: absolute;
+ top: 16px;
+ right: 0px;
+ color: #919999;
+}
+
+#utility a{
+ color: #ffffff;
+}
+
+#utility a:hover{
+ text-decoration: underline;
+}
+
+/************** pageName styles ****************/
+
+#pageName{
+ padding: 0px 0px 14px 10px;
+ margin: 0px;
+ border-bottom:1px solid #ccd2d2;
+}
+
+#pageName h2{
+ font: bold 175% Arial,sans-serif;
+ color: #000000;
+ margin:0px;
+ padding: 0px;
+}
+
+/************* globalNav styles ****************/
+
+#globalNav{
+position: relative;
+width: 100%;
+min-width: 640px;
+height: 32px;
+color: #cccccc;
+padding: 0px;
+margin: 0px;
+background-image: url("siteimages/glbnav_background.gif");
+}
+
+#globalNav img{
+ margin-bottom: -4px;
+
+}
+
+#gnl {
+ position: absolute;
+ top: 0px;
+ left:0px;
+}
+
+#gnr {
+ position: absolute;
+ top: 0px;
+ right:0px;
+}
+
+#globalLink{
+ position: absolute;
+ top: 6px;
+ height: 22px;
+ min-width: 640px;
+ padding: 0px;
+ margin: 0px;
+ left: 10px;
+ z-index: 100;
+}
+
+
+a.glink, a.glink:visited{
+ font-size: small;
+ color: #000000;
+ font-weight: bold;
+ margin: 0px;
+ padding: 2px 5px 4px 5px;
+ border-right: 1px solid #8FB8BC;
+}
+
+a.glink:hover{
+ background-image: url("siteimages/glblnav_selected.gif");
+ text-decoration: none;
+}
+
+.skipLinks {display: none;}
+
+/************ subglobalNav styles **************/
+
+.subglobalNav{
+ position: absolute;
+ top: 84px;
+ left: 0px;
+ /*width: 100%;*/
+ min-width: 640px;
+ height: 20px;
+ padding: 0px 0px 0px 10px;
+ visibility: hidden;
+ color: #ffffff;
+}
+
+.subglobalNav a:link, .subglobalNav a:visited {
+ font-size: 80%;
+ color: #ffffff;
+}
+
+.subglobalNav a:hover{
+ color: #cccccc;
+}
+
+/*************** search styles *****************/
+/*
+#listshow {
+ z-order: 101;
+}
+*/
+#search{
+ position: absolute;
+ top: 125px;
+ right: 0px;
+}
+
+#search form {
+ position: absolute;
+ top: 125px;
+ right: 300px;
+}
+#search input {
+ font-size: 11px;
+}
+
+#search1{
+ position: absolute;
+ top: 85px;
+ right: 300px;
+}
+
+#search2{
+ position: absolute;
+ top: 100px;
+ right: 300px;
+}
+
+#search3{
+ position: absolute;
+ top: 85px;
+ right: 240px;
+}
+
+#search4{
+ position: absolute;
+ top: 100px;
+ right: 226px;
+}
+
+#googlead{
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ z-index: 101;
+}
+
+#search input{
+ font-size: 70%;
+ margin: 0px 0px 0px 10px;
+ }
+
+#search a:link, #search a:visited {
+ font-size: 80%;
+ font-weight: bold;
+
+}
+
+#search a:hover{
+ margin: 0px;
+}
+
+
+/************* breadCrumb styles ***************/
+
+#breadCrumb{
+ padding: 5px 0px 5px 10px;
+ font: small Verdana,sans-serif;
+ color: #AAAAAA;
+}
+
+#breadCrumb a{
+ color: #AAAAAA;
+}
+
+#breadCrumb a:hover{
+ color: #005FA9;
+ text-decoration: underline;
+}
+
+
+/************** feature styles *****************/
+
+.feature{
+ padding: 0px 0px 10px 10px;
+ font-size: 80%;
+ min-height: 200px;
+ height: 200px;
+}
+html>body .feature {height: auto;}
+
+.feature h3{
+ font: bold 175% Arial,sans-serif;
+ color: #000000;
+ padding: 30px 0px 5px 0px;
+}
+
+.feature img{
+ float: left;
+ padding: 0px 10px 0px 0px;
+}
+
+
+/*************** story styles ******************/
+
+.story {
+ padding: 10px 0px 0px 10px;
+ font-size: 80%;
+ min-height: 272px;
+}
+
+.story h3{
+ font: bold 125% Arial,sans-serif;
+ color: #000000;
+}
+
+.story p {
+ padding: 0px 0px 10px 0px;
+}
+
+.story a.capsule{
+ font: bold 1em Arial,sans-serif;
+ color: #005FA9;
+ display:block;
+ padding-bottom: 5px;
+}
+
+.story a.capsule:hover{
+ text-decoration: underline;
+}
+
+td.storyLeft{
+ padding-right: 12px;
+}
+
+
+/************** siteInfo styles ****************/
+
+#siteInfo{
+ clear: both;
+ border-top: 1px solid #cccccc;
+ font-size: small;
+ color: #cccccc;
+ padding: 10px 10px 10px 10px;
+}
+
+/************ sectionLinks styles **************/
+
+#sectionLinks{
+ margin: 0px;
+ padding: 0px;
+
+}
+
+#sectionLinks h3{
+ padding: 10px 0px 2px 10px;
+ border-bottom: 1px solid #cccccc;
+}
+
+#sectionLinks a:link, #sectionLinks a:visited {
+ display: block;
+ border-top: 1px solid #ffffff;
+ border-bottom: 1px solid #cccccc;
+ background-image: url("siteimages/bg_nav.jpg");
+ font-weight: bold;
+ padding: 3px 0px 3px 10px;
+ color: #21536A;
+}
+
+#sectionLinks a:hover{
+ border-top: 1px solid #cccccc;
+ background-color: #DDEEFF;
+ background-image: none;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+
+/************* relatedLinks styles **************/
+
+.relatedLinks{
+ margin: 0px;
+ padding: 0px 0px 10px 10px;
+ border-bottom: 1px solid #cccccc;
+}
+
+.relatedLinks h3{
+ padding: 10px 0px 2px 0px;
+}
+
+.relatedLinks a{
+ display: block;
+}
+
+
+/**************** advert styles *****************/
+
+#advert{
+ padding: 10px;
+}
+
+#advert img{
+ display: block;
+}
+
+/********************* end **********************/
+
+.DataTD input, .DataTD textarea {
+ FONT-SIZE: 92%;
+}
+
+.DataTD select, .DataTD option {
+ FONT-SIZE: 92%;
+}
+
+.DataTD {
+ background-color: #E2E2E2;
+ border-style: inset;
+ border-width: 1px;
+ FONT-SIZE: 8pt;
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif;
+
+ background: #ffffff;
+ padding: 1px 5px 1px 5px;
+ border: 1px #CFCFCF solid;
+ border-left: 1px #CFCFCF dotted;
+ border-right: 1px #CFCFCF dotted;
+}
+
+.DataTDGrey {
+ background-color: #EFEDED;
+ border-style: inset;
+ border-width: 1px;
+ FONT-SIZE: 8pt;
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif;
+
+ padding: 1px 5px 1px 5px;
+ border: 1px #CFCFCF solid;
+ border-left: 1px #CFCFCF dotted;
+ border-right: 1px #CFCFCF dotted;
+}
+
+.DataTDNotDotted {
+ background-color: #E2E2E2;
+ border-style: inset;
+ border-width: 1px;
+ FONT-SIZE: 8pt;
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif;
+
+ background: #ffffff;
+ padding: 1px 5px 1px 5px;
+ border: 1px #CFCFCF solid;
+ border-left: 1px #CFCFCF solid;
+ border-right: 1px #CFCFCF solid;
+}
+
+.wrapper {
+ border-collapse: collapse;
+ font-family: verdana, sans-serif;
+ font-size: 11px;
+ text-align: center;
+}
+
+td.greytxt {
+ color: #CCCCCC;
+ font-size: smaller;
+ text-align: right;
+ vertical-align: bottom;
+}
+
+.title {
+ background: #E2E2E2;
+ font-weight:BOLD;
+ padding: 1px 5px 1px 5px;
+ border: 1px solid #CFCFCF;
+ border-bottom: 3px double #CFCFCF;
+ border-top: 1px solid #656565;
+ text-align: center;
+}
+
+.errmsg {
+ font-weight: BOLD;
+ color: #FF0000;
+}
+
+.ac_menu
+{
+ border:1px solid black
+}
+.ac_normal
+{
+ background-color:#ffffff;
+ cursor:pointer;
+}
+.ac_highlight
+{
+ background-color:#3366cc;
+ color:white;
+ cursor:pointer;
+}
+.ac_normal .a
+{
+ font-size:13px;
+ color:black;
+}
+.ac_highlight .a
+{
+ font-size:13px;
+}
+.ac_normal .d
+{
+ float:right;
+ font-size:10px;
+ color:green;
+}
+.ac_highlight .d
+{
+ float:right;
+ font-size:10px;
+}
+
+br {
+ clear: left;
+}
+
+label {
+ font-size: 90%;
+}
+
+label,input,select {
+ display: block;
+ width: 150px;
+ float: left;
+ margin-bottom: 10px;
+}
+
+label {
+ text-align: right;
+ width: 75px;
+ padding-right: 20px;
+}