Skip to content

Commit

Permalink
upgraded core and CertificateAuthority, added BitTorrent
Browse files Browse the repository at this point in the history
  • Loading branch information
chief93 committed Apr 2, 2018
1 parent 5f35888 commit b27866b
Show file tree
Hide file tree
Showing 8 changed files with 398 additions and 134 deletions.
90 changes: 90 additions & 0 deletions Extensions/BitTorrent/BitTorrentEncode.php
@@ -0,0 +1,90 @@
<?php
namespace Quark\Extensions\BitTorrent;

use Quark\IQuarkIOProcessor;

use Quark\QuarkObject;
use Quark\QuarkPlainIOProcessor;

/**
* Class BitTorrentEncode
*
* @package Quark\Extensions\BitTorrent
*/
class BitTorrentEncode implements IQuarkIOProcessor {
const MIME = 'application/x-bittorrent';

/**
* @var bool $_plain = false
*/
private $_plain = false;

/**
* @return string
*/
public function MimeType () {
return $this->_plain ? QuarkPlainIOProcessor::MIME : self::MIME;
}

/**
* @param $data
*
* @return string
*/
public function Encode ($data) {
if (is_bool($data)) return 'd' . ($data ? 1 : 0) . 'e';
if (is_int($data)) return 'd' . $data . 'e';
if (is_float($data)) return 'd' . ((int)$data) . 'e';
if (is_string($data)) return strlen($data) . ':' . $data;

if (QuarkObject::isIterative($data)) {
$out = 'l';

foreach ($data as $i => &$item)
$out .= $this->Encode($item);

unset($i , $item);

return $out . 'e';
}

if (QuarkObject::isAssociative($data)) {
$out = 'd';

foreach ($data as $key => &$value)
$out .= $this->Encode($key) . $this->Encode($value);

unset($key , $value);

return $out . 'e';
}

return null;
}

/**
* @param $raw
*
* @return mixed
*/
public function Decode ($raw) {
// TODO: Implement Decode() method.
}

/**
* @param string $raw
* @param bool $fallback
*
* @return mixed
*/
public function Batch ($raw, $fallback) {
return array($raw);
}

/**
* @return bool
*/
public function ForceInput () {
return false;
}
}
@@ -1,5 +1,5 @@
<?php
namespace Quark\Extensions\SSLAuthority;
namespace Quark\Extensions\CertificateAuthority;

use Quark\IQuarkExtension;

Expand All @@ -8,13 +8,13 @@
use Quark\QuarkCertificateSAN;

/**
* Class SSLAuthority
* Class CertificateAuthority
*
* @package Quark\Extensions\SSLAuthority
* @package Quark\Extensions\CertificateAuthority
*/
class SSLAuthority implements IQuarkExtension {
class CertificateAuthority implements IQuarkExtension {
/**
* @var SSLAuthorityConfig $_config
* @var CertificateAuthorityConfig $_config
*/
private $_config;

Expand Down Expand Up @@ -77,9 +77,11 @@ public function SignDomains ($domains = [], $passphrase = null) {
$certificate = QuarkCertificate::ForDomainCSR($domains[0], $passphrase);
$domains = array_slice($domains, 1);

foreach ($domains as $domain)
foreach ($domains as $i => &$domain)
$certificate->AltName(new QuarkCertificateSAN($domain));

unset($i, $domain);

return $this->CertificateRequest($certificate);
}
}
@@ -1,34 +1,34 @@
<?php
namespace Quark\Extensions\SSLAuthority;
namespace Quark\Extensions\CertificateAuthority;

use Quark\IQuarkExtension;
use Quark\IQuarkExtensionConfigWithForcedOptions;

/**
* Class SSLAuthorityConfig
*
* @package Quark\Extensions\SSLAuthority
* @package Quark\Extensions\CertificateAuthority
*/
class SSLAuthorityConfig implements IQuarkExtensionConfigWithForcedOptions {
class CertificateAuthorityConfig implements IQuarkExtensionConfigWithForcedOptions {
/**
* @var string $_name
*/
private $_name = '';

/**
* @var IQuarkSSLAuthorityProvider $_provider
* @var IQuarkCertificateAuthorityProvider $_provider
*/
private $_provider;

/**
* @param IQuarkSSLAuthorityProvider $provider
* @param IQuarkCertificateAuthorityProvider $provider
*/
public function __construct (IQuarkSSLAuthorityProvider $provider) {
public function __construct (IQuarkCertificateAuthorityProvider $provider) {
$this->_provider = $provider;
}

/**
* @return IQuarkSSLAuthorityProvider
* @return IQuarkCertificateAuthorityProvider
*/
public function &Provider () {
return $this->_provider;
Expand Down Expand Up @@ -61,6 +61,6 @@ public function ExtensionOptions ($ini) {
* @return IQuarkExtension
*/
public function ExtensionInstance () {
return new SSLAuthority($this->_name);
return new CertificateAuthority($this->_name);
}
}
@@ -1,14 +1,14 @@
<?php
namespace Quark\Extensions\SSLAuthority;
namespace Quark\Extensions\CertificateAuthority;

use Quark\QuarkCertificate;

/**
* Interface IQuarkSSLAuthorityProvider
* Interface IQuarkCertificateAuthorityProvider
*
* @package Quark\Extensions\SSLAuthority
* @package Quark\Extensions\CertificateAuthority
*/
interface IQuarkSSLAuthorityProvider {
interface IQuarkCertificateAuthorityProvider {
/**
* @param object $options
*
Expand Down
@@ -1,5 +1,5 @@
<?php
namespace Quark\Extensions\SSLAuthority\Providers;
namespace Quark\Extensions\CertificateAuthority\Providers;

use Quark\IQuarkGetService;
use Quark\IQuarkModel;
Expand All @@ -20,16 +20,16 @@
use Quark\QuarkFile;
use Quark\QuarkObject;

use Quark\Extensions\SSLAuthority\IQuarkSSLAuthorityProvider;
use Quark\Extensions\CertificateAuthority\IQuarkCertificateAuthorityProvider;

/**
* https://github.com/analogic/lescript
*
* Class LetsEncrypt
*
* @package Quark\Extensions\SSLAuthority\Providers
* @package Quark\Extensions\CertificateAuthority\Providers
*/
class LetsEncrypt implements IQuarkSSLAuthorityProvider {
class LetsEncrypt implements IQuarkCertificateAuthorityProvider {
const URL_PRODUCTION = 'https://acme-v01.api.letsencrypt.org';
const URL_STAGING = 'https://acme-staging.api.letsencrypt.org';
const URL_AGREEMENT = 'https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf';
Expand Down
@@ -1,20 +1,20 @@
<?php
namespace Quark\Extensions\SSLAuthority\Providers;
namespace Quark\Extensions\CertificateAuthority\Providers;

use Quark\Quark;
use Quark\QuarkDateInterval;
use Quark\QuarkCertificate;
use Quark\QuarkCipherKeyPair;
use Quark\QuarkObject;

use Quark\Extensions\SSLAuthority\IQuarkSSLAuthorityProvider;
use Quark\Extensions\CertificateAuthority\IQuarkCertificateAuthorityProvider;

/**
* Class SelfSignedAuthority
*
* @package Quark\Extensions\SSLAuthority\Providers
* @package Quark\Extensions\CertificateAuthority\Providers
*/
class SelfSignedAuthority implements IQuarkSSLAuthorityProvider {
class SelfSignedAuthority implements IQuarkCertificateAuthorityProvider {
/**
* @var int $_period = QuarkDateInterval::DAYS_IN_YEAR
*/
Expand Down

0 comments on commit b27866b

Please sign in to comment.