Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:56912 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 60634 invoked from network); 13 Dec 2011 17:07:04 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 13 Dec 2011 17:07:04 -0000 Authentication-Results: pb1.pair.com smtp.mail=jason.gerfen@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=jason.gerfen@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.215.42 as permitted sender) X-PHP-List-Original-Sender: jason.gerfen@gmail.com X-Host-Fingerprint: 209.85.215.42 mail-lpp01m010-f42.google.com Received: from [209.85.215.42] ([209.85.215.42:50580] helo=mail-lpp01m010-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 78/00-60358-63687EE4 for ; Tue, 13 Dec 2011 12:07:04 -0500 Received: by lagj5 with SMTP id j5so2568942lag.29 for ; Tue, 13 Dec 2011 09:06:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=ZxU9IwB+zEPpDXEztMDhA9J8KaDcNkxTIXR0gRln87c=; b=qFTyHLMpXCBUvOe5J0q7LkNCeQnd6n7MRLXrYylrODXQ5fPE+IqwV8nYhcjOKrsmJL IiltdUCklKk+j+8MT/8oGSbPghkr/KBCOys64JfcLOrTJQPL7Z6pnj836B1iaThIx315 9D9RvldKp5iUTuZaifHisGHtv0FgTw10lLR+U= MIME-Version: 1.0 Received: by 10.152.112.10 with SMTP id im10mr15868235lab.2.1323796019783; Tue, 13 Dec 2011 09:06:59 -0800 (PST) Received: by 10.152.122.142 with HTTP; Tue, 13 Dec 2011 09:06:59 -0800 (PST) Date: Tue, 13 Dec 2011 10:06:59 -0700 Message-ID: To: internals@lists.php.net Content-Type: multipart/mixed; boundary=f46d0408da9f83a88c04b3fc4729 Subject: Patch for OpenSSL extension to implement SPKAC functions From: jason.gerfen@gmail.com (Jason Gerfen) --f46d0408da9f83a88c04b3fc4729 Content-Type: text/plain; charset=ISO-8859-1 I posted this patch early last week to the list and did not see any activity about it. According to the page (http://php.net/svn-php.php) I should re-submit after a week just in case, so without further adieu. This is a simple implementation of four new functions to the OpenSSL extensions to handle signed public key and challenge requires sent by the *cough* *cough* new KeyGen tag (http://dev.w3.org/html5/markup/keygen.html). openssl_spki_new(mixed pkey, string challenge) openssl_spki_verify(string spkac) openssl_spki_export(mixed pkey) openssl_spki_export_challenge(mixed pkey) openssl_spki_details(mixed pkey) Attached is the patch (tested against php-5.3.8 & openssl-1.0.0e) as well as a cli test case and module test case. -- Jason --f46d0408da9f83a88c04b3fc4729 Content-Type: application/x-httpd-php; name="openssl-spki.php" Content-Disposition: attachment; filename="openssl-spki.php" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gw55ym2j1 PD9waHANCg0KZWNobyAiR2VuZXJhdGluZyBwcml2YXRlIGtleS4uLiI7DQoka2V5ID0gb3BlbnNz bF9wa2V5X25ldyhhcnJheSgnZGlnZXN0X2FsZycgPT4gJ3NoYTEnLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ3ByaXZhdGVfa2V5X3R5cGUnID0+IE9QRU5TU0xfS0VZVFlQRV9SU0Es DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpdmF0ZV9rZXlfYml0cycgPT4gMjA0 OCkpOw0KZWNobyAiZG9uZTxici8+IjsNCmVjaG8gIj09PT09PT09PT09PT09PT09PT09PT09PT09 PT08YnIvPiI7DQoNCmVjaG8gIkNyZWF0aW5nIFNQS0FDLi4uPGJyLz4iOw0KaWYgKGZ1bmN0aW9u X2V4aXN0cygnb3BlbnNzbF9zcGtpX25ldycpKXsNCiAkc3BraSA9IChlbXB0eSgkX1BPU1RbJ2No YWxsZW5nZSddKSkgPw0KICAgb3BlbnNzbF9zcGtpX25ldygka2V5LCAnd3RmZDAwZCcpIDoNCiAg IG9wZW5zc2xfc3BraV9uZXcoJGtleSwgJF9QT1NUWydjaGFsbGVuZ2UnXSk7DQogZWNobyAkc3Br aTsNCn0NCmVjaG8gIjxici8+ZG9uZTxici8+IjsNCmVjaG8gIj09PT09PT09PT09PT09PT09PT09 PT09PT09PT08YnIvPiI7DQoNCmVjaG8gIlZlcmlmeWluZyBTUEtBQy4uLjxici8+IjsNCmlmIChm dW5jdGlvbl9leGlzdHMoJ29wZW5zc2xfc3BraV92ZXJpZnknKSl7DQogJHcgPSAoZW1wdHkoJF9Q T1NUWydzcGtpLWtleSddKSkgPw0KICAgb3BlbnNzbF9zcGtpX3ZlcmlmeShwcmVnX3JlcGxhY2Uo Jy9TUEtBQz0vJywgJycsICRzcGtpKSkgOg0KICAgb3BlbnNzbF9zcGtpX3ZlcmlmeSgkX1BPU1Rb J3Nwa2kta2V5J10pOw0KIHZhcl9kdW1wKCR3KTsNCn0NCmVjaG8gIjxici8+PT09PT09PT09PT09 PT09PT09PT09PT09PT09PTxici8+IjsNCg0KZWNobyAiU1BLQUMgY2hhbGxlbmdlLi4uPGJyLz4i Ow0KaWYgKGZ1bmN0aW9uX2V4aXN0cygnb3BlbnNzbF9zcGtpX2V4cG9ydF9jaGFsbGVuZ2UnKSl7 DQogJHggPSAoZW1wdHkoJF9QT1NUWydzcGtpLWtleSddKSkgPw0KICAgb3BlbnNzbF9zcGtpX2V4 cG9ydF9jaGFsbGVuZ2UocHJlZ19yZXBsYWNlKCcvU1BLQUM9LycsICcnLCAkc3BraSkpIDoNCiAg IG9wZW5zc2xfc3BraV9leHBvcnRfY2hhbGxlbmdlKCRfUE9TVFsnc3BraS1rZXknXSk7DQogZWNo byAkeDsNCn0NCmVjaG8gIjxici8+ZG9uZTxici8+IjsNCmVjaG8gIj09PT09PT09PT09PT09PT09 PT09PT09PT09PT08YnIvPiI7DQoNCmVjaG8gIlNQS0FDIGRldGFpbHMuLi48YnIvPiI7DQppZiAo ZnVuY3Rpb25fZXhpc3RzKCdvcGVuc3NsX3Nwa2lfZGV0YWlscycpKXsNCiAkeSA9IChlbXB0eSgk X1BPU1RbJ3Nwa2kta2V5J10pKSA/DQogICBvcGVuc3NsX3Nwa2lfZGV0YWlscyhwcmVnX3JlcGxh Y2UoJy9TUEtBQz0vJywgJycsICRzcGtpKSkgOg0KICAgb3BlbnNzbF9zcGtpX2RldGFpbHMoJF9Q T1NUWydzcGtpLWtleSddKTsNCiBlY2hvICc8cHJlPic7IHByaW50X3IoJHkpOyBlY2hvICc8L3By ZT4nOw0KfQ0KZWNobyAiZG9uZTxici8+IjsNCmVjaG8gIj09PT09PT09PT09PT09PT09PT09PT09 PT09PT08YnIvPiI7DQoNCmVjaG8gIkV4cG9ydGluZyBwdWJsaWMga2V5IGZyb20gU1BLQUMuLi48 YnIvPiI7DQppZiAoZnVuY3Rpb25fZXhpc3RzKCdvcGVuc3NsX3Nwa2lfZXhwb3J0Jykpew0KICR6 ID0gKGVtcHR5KCRfUE9TVFsnc3BraS1rZXknXSkpID8NCiAgIG9wZW5zc2xfc3BraV9leHBvcnQo cHJlZ19yZXBsYWNlKCcvU1BLQUM9LycsICcnLCAkc3BraSkpIDoNCiAgIG9wZW5zc2xfc3BraV9l eHBvcnQoJF9QT1NUWydzcGtpLWtleSddKTsNCiBlY2hvICc8cHJlPic7IHByaW50X3IoJHopOyBl Y2hvICc8L3ByZT4nOw0KfQ0KZWNobyAiZG9uZTxici8+IjsNCmVjaG8gIj09PT09PT09PT09PT09 PT09PT09PT09PT09PT08YnIvPiI7DQoNCm9wZW5zc2xfcGtleV9mcmVlKCRrZXkpOw0KDQo/Pg0K --f46d0408da9f83a88c04b3fc4729 Content-Type: application/x-httpd-php; name="openssl-spki-cli.php" Content-Disposition: attachment; filename="openssl-spki-cli.php" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gw55youl2 IyEvdXNyL2xvY2FsL2Jpbi9waHANCg0KPD9waHANCg0KZWNobyAiR2VuZXJhdGluZyBwcml2YXRl IGtleS4uLiI7DQoka2V5ID0gb3BlbnNzbF9wa2V5X25ldyhhcnJheSgnZGlnZXN0X2FsZycgPT4g J3NoYTEnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaXZhdGVfa2V5X3R5cGUn ID0+IE9QRU5TU0xfS0VZVFlQRV9SU0EsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn cHJpdmF0ZV9rZXlfYml0cycgPT4gMjA0OCkpOw0KZWNobyAiZG9uZVxuIjsNCmVjaG8gIj09PT09 PT09PT09PT09PT09PT09PT09PT09PT1cbiI7DQoNCmVjaG8gIkNyZWF0aW5nIFNQS0FDLi4uXG4i Ow0KaWYgKGZ1bmN0aW9uX2V4aXN0cygnb3BlbnNzbF9zcGtpX25ldycpKXsNCiAkc3BraSA9IChl bXB0eSgkX1BPU1RbJ2NoYWxsZW5nZSddKSkgPw0KICAgb3BlbnNzbF9zcGtpX25ldygka2V5LCAn d3RmZDAwZCcpIDoNCiAgIG9wZW5zc2xfc3BraV9uZXcoJGtleSwgJF9QT1NUWydjaGFsbGVuZ2Un XSk7DQogZWNobyAkc3BraTsNCn0NCmVjaG8gIlxuZG9uZVxuIjsNCmVjaG8gIj09PT09PT09PT09 PT09PT09PT09PT09PT09PT1cbiI7DQoNCmVjaG8gIlZlcmlmeWluZyBTUEtBQy4uLlxuIjsNCmlm IChmdW5jdGlvbl9leGlzdHMoJ29wZW5zc2xfc3BraV92ZXJpZnknKSl7DQogJHcgPSAoZW1wdHko JF9QT1NUWydzcGtpLWtleSddKSkgPw0KICAgb3BlbnNzbF9zcGtpX3ZlcmlmeShwcmVnX3JlcGxh Y2UoJy9TUEtBQz0vJywgJycsICRzcGtpKSkgOg0KICAgb3BlbnNzbF9zcGtpX3ZlcmlmeSgkX1BP U1RbJ3Nwa2kta2V5J10pOw0KIHZhcl9kdW1wKCR3KTsNCn0NCmVjaG8gIlxuPT09PT09PT09PT09 PT09PT09PT09PT09PT09PVxuIjsNCg0KZWNobyAiU1BLQUMgY2hhbGxlbmdlLi4uXG4iOw0KaWYg KGZ1bmN0aW9uX2V4aXN0cygnb3BlbnNzbF9zcGtpX2V4cG9ydF9jaGFsbGVuZ2UnKSl7DQogJHgg PSAoZW1wdHkoJF9QT1NUWydzcGtpLWtleSddKSkgPw0KICAgb3BlbnNzbF9zcGtpX2V4cG9ydF9j aGFsbGVuZ2UocHJlZ19yZXBsYWNlKCcvU1BLQUM9LycsICcnLCAkc3BraSkpIDoNCiAgIG9wZW5z c2xfc3BraV9leHBvcnRfY2hhbGxlbmdlKCRfUE9TVFsnc3BraS1rZXknXSk7DQogZWNobyAkeDsN Cn0NCmVjaG8gIlxuZG9uZVxuIjsNCmVjaG8gIj09PT09PT09PT09PT09PT09PT09PT09PT09PT1c biI7DQoNCmVjaG8gIlNQS0FDIGRldGFpbHMuLi5cbiI7DQppZiAoZnVuY3Rpb25fZXhpc3RzKCdv cGVuc3NsX3Nwa2lfZGV0YWlscycpKXsNCiAkeSA9IChlbXB0eSgkX1BPU1RbJ3Nwa2kta2V5J10p KSA/DQogICBvcGVuc3NsX3Nwa2lfZGV0YWlscyhwcmVnX3JlcGxhY2UoJy9TUEtBQz0vJywgJycs ICRzcGtpKSkgOg0KICAgb3BlbnNzbF9zcGtpX2RldGFpbHMoJF9QT1NUWydzcGtpLWtleSddKTsN CiBlY2hvICR5Ow0KfQ0KZWNobyAiZG9uZVxuIjsNCmVjaG8gIj09PT09PT09PT09PT09PT09PT09 PT09PT09PT1cbiI7DQoNCmVjaG8gIkV4cG9ydGluZyBwdWJsaWMga2V5IGZyb20gU1BLQUMuLi5c biI7DQppZiAoZnVuY3Rpb25fZXhpc3RzKCdvcGVuc3NsX3Nwa2lfZXhwb3J0Jykpew0KICR6ID0g KGVtcHR5KCRfUE9TVFsnc3BraS1rZXknXSkpID8NCiAgIG9wZW5zc2xfc3BraV9leHBvcnQocHJl Z19yZXBsYWNlKCcvU1BLQUM9LycsICcnLCAkc3BraSkpIDoNCiAgIG9wZW5zc2xfc3BraV9leHBv cnQoJF9QT1NUWydzcGtpLWtleSddKTsNCiBlY2hvICR6Ow0KfQ0KZWNobyAiZG9uZVxuIjsNCmVj aG8gIj09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiI7DQoNCm9wZW5zc2xfcGtleV9mcmVl KCRrZXkpOw0KDQo/Pg0K --f46d0408da9f83a88c04b3fc4729--