forked from joomla/Component-Builder
Moved the composer vendor folder to libraries and removed it from the admin/helpers folder. Improved the dynamic folder include concept.
This commit is contained in:
parent
1b86f1539a
commit
7f3dae297a
@ -126,14 +126,14 @@ Component Builder is mapped as a component in itself on my local development env
|
|||||||
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||||
+ *Name*: [Component Builder](http://joomlacomponentbuilder.com)
|
+ *Name*: [Component Builder](http://joomlacomponentbuilder.com)
|
||||||
+ *First Build*: 30th April, 2015
|
+ *First Build*: 30th April, 2015
|
||||||
+ *Last Build*: 27th February, 2018
|
+ *Last Build*: 28th February, 2018
|
||||||
+ *Version*: 2.6.17
|
+ *Version*: 2.6.17
|
||||||
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
|
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
|
||||||
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
+ *Line count*: **183098**
|
+ *Line count*: **183036**
|
||||||
+ *Field count*: **1641**
|
+ *Field count*: **1641**
|
||||||
+ *File count*: **1169**
|
+ *File count*: **1169**
|
||||||
+ *Folder count*: **188**
|
+ *Folder count*: **189**
|
||||||
|
|
||||||
> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
|
> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
|
||||||
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||||
|
@ -126,14 +126,14 @@ Component Builder is mapped as a component in itself on my local development env
|
|||||||
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||||
+ *Name*: [Component Builder](http://joomlacomponentbuilder.com)
|
+ *Name*: [Component Builder](http://joomlacomponentbuilder.com)
|
||||||
+ *First Build*: 30th April, 2015
|
+ *First Build*: 30th April, 2015
|
||||||
+ *Last Build*: 27th February, 2018
|
+ *Last Build*: 28th February, 2018
|
||||||
+ *Version*: 2.6.17
|
+ *Version*: 2.6.17
|
||||||
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
|
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
|
||||||
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
+ *Line count*: **183098**
|
+ *Line count*: **183036**
|
||||||
+ *Field count*: **1641**
|
+ *Field count*: **1641**
|
||||||
+ *File count*: **1169**
|
+ *File count*: **1169**
|
||||||
+ *Folder count*: **188**
|
+ *Folder count*: **189**
|
||||||
|
|
||||||
> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
|
> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
|
||||||
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||||
|
@ -111,6 +111,8 @@ class com_###component###InstallerScript
|
|||||||
*/
|
*/
|
||||||
function postflight($type, $parent)
|
function postflight($type, $parent)
|
||||||
{
|
{
|
||||||
|
// get application
|
||||||
|
$app = JFactory::getApplication();###MOVEFOLDERSSCRIPT###
|
||||||
// set the default component settings
|
// set the default component settings
|
||||||
if ($type == 'install')
|
if ($type == 'install')
|
||||||
{###POSTINSTALLSCRIPT###
|
{###POSTINSTALLSCRIPT###
|
||||||
@ -119,5 +121,5 @@ class com_###component###InstallerScript
|
|||||||
if ($type == 'update')
|
if ($type == 'update')
|
||||||
{###POSTUPDATESCRIPT###
|
{###POSTUPDATESCRIPT###
|
||||||
}
|
}
|
||||||
}
|
}###MOVEFOLDERSMETHOD###
|
||||||
}
|
}
|
||||||
|
@ -306,6 +306,13 @@ class Structure extends Get
|
|||||||
*/
|
*/
|
||||||
public $addCheckin = false;
|
public $addCheckin = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Move Folders Switch
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
public $setMoveFolders = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The array of last modified dates
|
* The array of last modified dates
|
||||||
*
|
*
|
||||||
@ -313,6 +320,56 @@ class Structure extends Get
|
|||||||
*/
|
*/
|
||||||
protected $lastModifiedDate = array();
|
protected $lastModifiedDate = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The array of dynamic paths
|
||||||
|
*
|
||||||
|
* JPATH_SITE is meant to represent the root path of the JSite application, just as JPATH_ADMINISTRATOR is mean to represent the root path of the JAdministrator application.
|
||||||
|
*
|
||||||
|
* JPATH_BASE is the root path for the current requested application.... so if you are in the administrator application:
|
||||||
|
*
|
||||||
|
* JPATH_BASE == JPATH_ADMINISTRATOR
|
||||||
|
*
|
||||||
|
* If you are in the site application:
|
||||||
|
*
|
||||||
|
* JPATH_BASE == JPATH_SITE
|
||||||
|
*
|
||||||
|
* If you are in the installation application:
|
||||||
|
*
|
||||||
|
* JPATH_BASE == JPATH_INSTALLATION.
|
||||||
|
*
|
||||||
|
* JPATH_ROOT is the root path for the Joomla install and does not depend upon any application.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $constantPaths = array(
|
||||||
|
// The path to the administrator folder.
|
||||||
|
'JPATH_ADMINISTRATOR' => JPATH_ADMINISTRATOR,
|
||||||
|
// The path to the installed Joomla! site, or JPATH_ROOT/administrator if executed from the backend.
|
||||||
|
'JPATH_BASE' => JPATH_BASE,
|
||||||
|
// The path to the cache folder.
|
||||||
|
'JPATH_CACHE' => JPATH_CACHE,
|
||||||
|
// The path to the administration folder of the current component being executed.
|
||||||
|
'JPATH_COMPONENT_ADMINISTRATOR' => JPATH_COMPONENT_ADMINISTRATOR,
|
||||||
|
// The path to the site folder of the current component being executed.
|
||||||
|
'JPATH_COMPONENT_SITE' => JPATH_COMPONENT_SITE,
|
||||||
|
// The path to the current component being executed.
|
||||||
|
'JPATH_COMPONENT' => JPATH_COMPONENT,
|
||||||
|
// The path to folder containing the configuration.php file.
|
||||||
|
'JPATH_CONFIGURATION' => JPATH_CONFIGURATION,
|
||||||
|
// The path to the installation folder.
|
||||||
|
'JPATH_INSTALLATION' => JPATH_INSTALLATION,
|
||||||
|
// The path to the libraries folder.
|
||||||
|
'JPATH_LIBRARIES' => JPATH_LIBRARIES,
|
||||||
|
// The path to the plugins folder.
|
||||||
|
'JPATH_PLUGINS' => JPATH_PLUGINS,
|
||||||
|
// The path to the installed Joomla! site.
|
||||||
|
'JPATH_ROOT' => JPATH_ROOT,
|
||||||
|
// The path to the installed Joomla! site.
|
||||||
|
'JPATH_SITE' => JPATH_SITE,
|
||||||
|
// The path to the templates folder.
|
||||||
|
'JPATH_THEMES' => JPATH_THEMES
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
@ -718,40 +775,58 @@ class Structure extends Get
|
|||||||
$path = str_replace('c0mp0n3nt/', $this->componentPath . '/', $details->path);
|
$path = str_replace('c0mp0n3nt/', $this->componentPath . '/', $details->path);
|
||||||
// set the template folder path
|
// set the template folder path
|
||||||
$templatePath = (isset($details->custom) && $details->custom) ? (($details->custom !== 'full') ? $this->templatePathCustom.'/':'') : $this->templatePath.'/';
|
$templatePath = (isset($details->custom) && $details->custom) ? (($details->custom !== 'full') ? $this->templatePathCustom.'/':'') : $this->templatePath.'/';
|
||||||
// now mov the file
|
// set the final paths
|
||||||
|
$currentFullPath = str_replace('//', '/', $templatePath.'/'.$item);
|
||||||
|
$packageFullPath = str_replace('//', '/', $path.'/'.$new);
|
||||||
|
$zipFullPath = str_replace('//', '/', $zipPath.'/'.$new);
|
||||||
|
// now move the file
|
||||||
if ($details->type === 'file')
|
if ($details->type === 'file')
|
||||||
{
|
{
|
||||||
if (!JFile::exists($templatePath . $item))
|
if (!JFile::exists($currentFullPath))
|
||||||
{
|
{
|
||||||
$this->app->enqueueMessage(JText::sprintf('The file path: <b>%s</b> does not exist, and was not added!', $templatePath . $item), 'Error');
|
$this->app->enqueueMessage(JText::sprintf('The file path: <b>%s</b> does not exist, and was not added!', $currentFullPath), 'Error');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// move the file to its place
|
// move the file to its place
|
||||||
JFile::copy($templatePath . $item, $path . '/' . $new);
|
JFile::copy($currentFullPath, $packageFullPath);
|
||||||
// count the file created
|
// count the file created
|
||||||
$this->fileCount++;
|
$this->fileCount++;
|
||||||
// store the new files
|
// store the new files
|
||||||
if (!in_array($ftem, $this->notNew))
|
if (!in_array($ftem, $this->notNew))
|
||||||
{
|
{
|
||||||
$this->newFiles['static'][] = array('path' => $path . '/' . $new, 'name' => $new, 'zip' => $zipPath . '/' . $new);
|
$this->newFiles['static'][] = array('path' => $packageFullPath, 'name' => $new, 'zip' => $zipFullPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($details->type === 'folder')
|
elseif ($details->type === 'folder')
|
||||||
{
|
{
|
||||||
if (!JFolder::exists($templatePath . $item))
|
if (!JFolder::exists($currentFullPath))
|
||||||
{
|
{
|
||||||
$this->app->enqueueMessage(JText::sprintf('The folder path: <b>%s</b> does not exist, and was not added!', $templatePath . $item), 'Error');
|
$this->app->enqueueMessage(JText::sprintf('The folder path: <b>%s</b> does not exist, and was not added!', $currentFullPath), 'Error');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// move the folder to its place
|
// move the folder to its place
|
||||||
JFolder::copy($templatePath . $item, $path . '/' . $new);
|
JFolder::copy($currentFullPath, $packageFullPath);
|
||||||
// count the folder created
|
// count the folder created
|
||||||
$this->folderCount++;
|
$this->folderCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// check if we should add the dynamic folder moving script to the installer script
|
||||||
|
if (!$this->setMoveFolders)
|
||||||
|
{
|
||||||
|
$checker = explode('/',$zipFullPath);
|
||||||
|
// TODO <-- this may not be the best way, will keep an eye on this.
|
||||||
|
// We basicly only want to check if a folder is added that is not in the stdFolders array
|
||||||
|
if (isset($checker[0]) && ComponentbuilderHelper::checkString($checker[0]) && !in_array($checker[0], $stdFolders))
|
||||||
|
{
|
||||||
|
// add the setDynamicF0ld3rs() method to the install scipt.php file
|
||||||
|
$this->setMoveFolders = true;
|
||||||
|
// set message that this was done (will still add a tutorial link later)
|
||||||
|
$this->app->enqueueMessage(JText::sprintf('<p><b>Dynamic folder/s were detected.</b><br />A method (setDynamicF0ld3rs) was added to the install <b>script.php</b> of this package to insure that the folder/s are copied into the correct place when this componet is installed!</p>'), 'Notice');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1128,6 +1203,8 @@ class Structure extends Get
|
|||||||
if(!isset($custom['folder']) && isset($custom['folderpath']))
|
if(!isset($custom['folder']) && isset($custom['folderpath']))
|
||||||
{
|
{
|
||||||
$custom['folder'] = '/'.trim($custom['folderpath'], '/');
|
$custom['folder'] = '/'.trim($custom['folderpath'], '/');
|
||||||
|
// update the dynamic path
|
||||||
|
$custom['folder'] = $this->updateDynamicPath($custom['folder']);
|
||||||
// remove the file path
|
// remove the file path
|
||||||
unset($custom['folderpath']);
|
unset($custom['folderpath']);
|
||||||
// triget fullpath
|
// triget fullpath
|
||||||
@ -1237,6 +1314,8 @@ class Structure extends Get
|
|||||||
if(!isset($custom['file']) && isset($custom['filepath']))
|
if(!isset($custom['file']) && isset($custom['filepath']))
|
||||||
{
|
{
|
||||||
$custom['file'] = '/'.trim($custom['filepath'], '/');
|
$custom['file'] = '/'.trim($custom['filepath'], '/');
|
||||||
|
// update the dynamic path
|
||||||
|
$custom['file'] = $this->updateDynamicPath($custom['file']);
|
||||||
// remove the file path
|
// remove the file path
|
||||||
unset($custom['filepath']);
|
unset($custom['filepath']);
|
||||||
// triget fullpath
|
// triget fullpath
|
||||||
@ -1312,6 +1391,19 @@ class Structure extends Get
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update paths with real value
|
||||||
|
*
|
||||||
|
* @param string $path The full path
|
||||||
|
*
|
||||||
|
* @return string The updated path
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
protected function updateDynamicPath($path)
|
||||||
|
{
|
||||||
|
return $this->setPlaceholders($path, $this->constantPaths);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove folders with files
|
* Remove folders with files
|
||||||
*
|
*
|
||||||
|
@ -4682,6 +4682,66 @@ class Interpretation extends Fields
|
|||||||
return $script;
|
return $script;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setMoveFolderScript()
|
||||||
|
{
|
||||||
|
if ($this->setMoveFolders)
|
||||||
|
{
|
||||||
|
// reset script
|
||||||
|
$script = array();
|
||||||
|
$script[] = "\t\t//" . $this->setLine(__LINE__) . " We check if we have dynamic folders to copy";
|
||||||
|
$script[] = "\t\t\$this->setDynamicF0ld3rs(\$app, \$parent);";
|
||||||
|
// done
|
||||||
|
return PHP_EOL.implode(PHP_EOL, $script);
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setMoveFolderMethod()
|
||||||
|
{
|
||||||
|
if ($this->setMoveFolders)
|
||||||
|
{
|
||||||
|
// reset script
|
||||||
|
$script = array();
|
||||||
|
$script[] = "\t/**";
|
||||||
|
$script[] = "\t * Method to set/copy dynamic folders into place (use with caution)";
|
||||||
|
$script[] = "\t *";
|
||||||
|
$script[] = "\t * @return void";
|
||||||
|
$script[] = "\t */";
|
||||||
|
$script[] = "\tprotected function setDynamicF0ld3rs(\$app, \$parent)";
|
||||||
|
$script[] = "\t{";
|
||||||
|
$script[] = "\t\t//" . $this->setLine(__LINE__) . " get the instalation path";
|
||||||
|
$script[] = "\t\t\$installer = \$parent->getParent();";
|
||||||
|
$script[] = "\t\t\$installPath = \$installer->getPath('source');";
|
||||||
|
$script[] = "\t\t//" . $this->setLine(__LINE__) . " get all the folders";
|
||||||
|
$script[] = "\t\t\$folders = JFolder::folders(\$installPath);";
|
||||||
|
$script[] = "\t\t//" . $this->setLine(__LINE__) . " check if we have folders we may want to copy";
|
||||||
|
$script[] = "\t\t\$doNotCopy = array('media','admin','site'); // Joomla already deals with these";
|
||||||
|
$script[] = "\t\tif (count(\$folders) > 1)";
|
||||||
|
$script[] = "\t\t{";
|
||||||
|
$script[] = "\t\t\tforeach (\$folders as \$folder)";
|
||||||
|
$script[] = "\t\t\t{";
|
||||||
|
$script[] = "\t\t\t\t//" . $this->setLine(__LINE__) . " Only copy if not a standard folders";
|
||||||
|
$script[] = "\t\t\t\tif (!in_array(\$folder, \$doNotCopy))";
|
||||||
|
$script[] = "\t\t\t\t{";
|
||||||
|
$script[] = "\t\t\t\t\t//" . $this->setLine(__LINE__) . " set the source path";
|
||||||
|
$script[] = "\t\t\t\t\t\$src = \$installPath.'/'.\$folder;";
|
||||||
|
$script[] = "\t\t\t\t\t//" . $this->setLine(__LINE__) . " set the destination path";
|
||||||
|
$script[] = "\t\t\t\t\t\$dest = JPATH_ROOT.'/'.\$folder;";
|
||||||
|
$script[] = "\t\t\t\t\t//" . $this->setLine(__LINE__) . " now try to copy the folder";
|
||||||
|
$script[] = "\t\t\t\t\tif (!JFolder::copy(\$src, \$dest, '', true))";
|
||||||
|
$script[] = "\t\t\t\t\t{";
|
||||||
|
$script[] = "\t\t\t\t\t\t\$app->enqueueMessage('Could not copy '.\$folder.' folder into place, please make sure destination is writable!', 'error');";
|
||||||
|
$script[] = "\t\t\t\t\t}";
|
||||||
|
$script[] = "\t\t\t\t}";
|
||||||
|
$script[] = "\t\t\t}";
|
||||||
|
$script[] = "\t\t}";
|
||||||
|
$script[] = "\t}";
|
||||||
|
// done
|
||||||
|
return PHP_EOL.PHP_EOL.implode(PHP_EOL, $script);
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
public function getContentType($view, $component)
|
public function getContentType($view, $component)
|
||||||
{
|
{
|
||||||
// add if history is to be kept or if tags is added
|
// add if history is to be kept or if tags is added
|
||||||
|
@ -1026,6 +1026,12 @@ class Infusion extends Interpretation
|
|||||||
// ###UNINSTALLSCRIPT###
|
// ###UNINSTALLSCRIPT###
|
||||||
$this->fileContentStatic['###UNINSTALLSCRIPT###'] = $this->setUninstallScript();
|
$this->fileContentStatic['###UNINSTALLSCRIPT###'] = $this->setUninstallScript();
|
||||||
|
|
||||||
|
// ###MOVEFOLDERSSCRIPT###
|
||||||
|
$this->fileContentStatic['###MOVEFOLDERSSCRIPT###'] = $this->setMoveFolderScript();
|
||||||
|
|
||||||
|
// ###MOVEFOLDERSMETHOD###
|
||||||
|
$this->fileContentStatic['###MOVEFOLDERSMETHOD###'] = $this->setMoveFolderMethod();
|
||||||
|
|
||||||
// ###HELPER_UIKIT###
|
// ###HELPER_UIKIT###
|
||||||
$this->fileContentStatic['###HELPER_UIKIT###'] = $this->setUikitHelperMethods();
|
$this->fileContentStatic['###HELPER_UIKIT###'] = $this->setUikitHelperMethods();
|
||||||
|
|
||||||
|
@ -1984,7 +1984,7 @@ abstract class ComponentbuilderHelper
|
|||||||
if (!self::$composer)
|
if (!self::$composer)
|
||||||
{
|
{
|
||||||
// load the autoloader
|
// load the autoloader
|
||||||
require_once JPATH_ADMINISTRATOR.'/components/com_componentbuilder/helpers/vendor/autoload.php';
|
require_once JPATH_SITE.'/libraries/vdm_io/vendor/autoload.php';
|
||||||
// do not load again
|
// do not load again
|
||||||
self::$composer = true;
|
self::$composer = true;
|
||||||
}
|
}
|
||||||
@ -2094,7 +2094,7 @@ abstract class ComponentbuilderHelper
|
|||||||
if (!class_exists('\phpseclib\Net\SFTP'))
|
if (!class_exists('\phpseclib\Net\SFTP'))
|
||||||
{
|
{
|
||||||
// class not in place so send out error
|
// class not in place so send out error
|
||||||
JFactory::getApplication()->enqueueMessage(JText::_('COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_ADMINHELPERSVENDOR_FOLDER_OF_JCB_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO'), 'Error');
|
JFactory::getApplication()->enqueueMessage(JText::_('COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_BLIBRARIESVDM_IOVENDORB_FOLDER_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO'), 'Error');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// insure the port is set
|
// insure the port is set
|
||||||
|
1819
admin/helpers/vendor/phpseclib/phpseclib/composer.lock
generated
vendored
1819
admin/helpers/vendor/phpseclib/phpseclib/composer.lock
generated
vendored
File diff suppressed because it is too large
Load Diff
@ -6160,7 +6160,7 @@ COM_COMPONENTBUILDER_THERE_ARE_NO_OUT_OF_DATE_SNIPPETS_AT_THIS_TIME="There are n
|
|||||||
COM_COMPONENTBUILDER_THERE_ARE_NO_SNIPPETS_TO_UPDATE_AT_THIS_TIME="There are no snippets to update at this time"
|
COM_COMPONENTBUILDER_THERE_ARE_NO_SNIPPETS_TO_UPDATE_AT_THIS_TIME="There are no snippets to update at this time"
|
||||||
COM_COMPONENTBUILDER_THERE_HAS_BEEN_AN_ERROR_IF_THIS_CONTINUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR_OF_A_TYPE_ERROR_IN_THE_FIELDS_DISPLAY_REQUEST="There has been an error, if this continues please inform your system administrator of a type error in the fields display request!"
|
COM_COMPONENTBUILDER_THERE_HAS_BEEN_AN_ERROR_IF_THIS_CONTINUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR_OF_A_TYPE_ERROR_IN_THE_FIELDS_DISPLAY_REQUEST="There has been an error, if this continues please inform your system administrator of a type error in the fields display request!"
|
||||||
COM_COMPONENTBUILDER_THERE_WAS_A_PROBLEM_BNO_VIEW_OR_ID_FOUND_IN_SESSION_OR_VIEW_NOT_ALLOWED_TO_ACCESS_AREAB_WE_COULD_NOT_LOAD_ANY_LINKED_TO_VALUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR="There was a problem, <b>no view or id found in session or view not allowed to access area</b>, we could not load any linked to values. Please inform your system administrator!"
|
COM_COMPONENTBUILDER_THERE_WAS_A_PROBLEM_BNO_VIEW_OR_ID_FOUND_IN_SESSION_OR_VIEW_NOT_ALLOWED_TO_ACCESS_AREAB_WE_COULD_NOT_LOAD_ANY_LINKED_TO_VALUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR="There was a problem, <b>no view or id found in session or view not allowed to access area</b>, we could not load any linked to values. Please inform your system administrator!"
|
||||||
COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_ADMINHELPERSVENDOR_FOLDER_OF_JCB_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO="The <b>phpseclib\NET\SFTP</b> library\class is not available! This library\class should have been added to your admin/helpers/vendor folder of JCB. Please contact your system administrator for more info"
|
COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_BLIBRARIESVDM_IOVENDORB_FOLDER_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO="The <b>phpseclib\NET\SFTP</b> library\class is not available! This library\class should have been added to your <b>libraries/vdm_io/vendor</b> folder. Please contact your system administrator for more info"
|
||||||
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_PATH_ON_BSB_SERVER="The <b>%s</b> file could not be moved to <b>%s</b> path on <b>%s</b> server."
|
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_PATH_ON_BSB_SERVER="The <b>%s</b> file could not be moved to <b>%s</b> path on <b>%s</b> server."
|
||||||
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_SERVER="The <b>%s</b> file could not be moved to <b>%s</b> server."
|
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_SERVER="The <b>%s</b> file could not be moved to <b>%s</b> server."
|
||||||
COM_COMPONENTBUILDER_THE_BSB_LIBRARY_CAN_NOT_BE_DELETED_OR_THINGS_WILL_BREAK="The <b>%s</b> library can not be deleted, or things will break."
|
COM_COMPONENTBUILDER_THE_BSB_LIBRARY_CAN_NOT_BE_DELETED_OR_THINGS_WILL_BREAK="The <b>%s</b> library can not be deleted, or things will break."
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<extension type="component" version="3.2" method="upgrade">
|
<extension type="component" version="3.2" method="upgrade">
|
||||||
<name>COM_COMPONENTBUILDER</name>
|
<name>COM_COMPONENTBUILDER</name>
|
||||||
<creationDate>27th February, 2018</creationDate>
|
<creationDate>28th February, 2018</creationDate>
|
||||||
<author>Llewellyn van der Merwe</author>
|
<author>Llewellyn van der Merwe</author>
|
||||||
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
|
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
|
||||||
<authorUrl>http://joomlacomponentbuilder.com</authorUrl>
|
<authorUrl>http://joomlacomponentbuilder.com</authorUrl>
|
||||||
|
1
libraries/vdm_io/index.html
Normal file
1
libraries/vdm_io/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
@ -4,4 +4,4 @@
|
|||||||
|
|
||||||
require_once __DIR__ . '/composer/autoload_real.php';
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
||||||
return ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570::getLoader();
|
return ComposerAutoloaderInit10d22a526bd476954b93748a871e7ad4::getLoader();
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
// autoload_real.php @generated by Composer
|
// autoload_real.php @generated by Composer
|
||||||
|
|
||||||
class ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570
|
class ComposerAutoloaderInit10d22a526bd476954b93748a871e7ad4
|
||||||
{
|
{
|
||||||
private static $loader;
|
private static $loader;
|
||||||
|
|
||||||
@ -19,15 +19,15 @@ class ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570
|
|||||||
return self::$loader;
|
return self::$loader;
|
||||||
}
|
}
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570', 'loadClassLoader'), true, true);
|
spl_autoload_register(array('ComposerAutoloaderInit10d22a526bd476954b93748a871e7ad4', 'loadClassLoader'), true, true);
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570', 'loadClassLoader'));
|
spl_autoload_unregister(array('ComposerAutoloaderInit10d22a526bd476954b93748a871e7ad4', 'loadClassLoader'));
|
||||||
|
|
||||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||||
if ($useStaticLoader) {
|
if ($useStaticLoader) {
|
||||||
require_once __DIR__ . '/autoload_static.php';
|
require_once __DIR__ . '/autoload_static.php';
|
||||||
|
|
||||||
call_user_func(\Composer\Autoload\ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::getInitializer($loader));
|
call_user_func(\Composer\Autoload\ComposerStaticInit10d22a526bd476954b93748a871e7ad4::getInitializer($loader));
|
||||||
} else {
|
} else {
|
||||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||||
foreach ($map as $namespace => $path) {
|
foreach ($map as $namespace => $path) {
|
||||||
@ -48,19 +48,19 @@ class ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570
|
|||||||
$loader->register(true);
|
$loader->register(true);
|
||||||
|
|
||||||
if ($useStaticLoader) {
|
if ($useStaticLoader) {
|
||||||
$includeFiles = Composer\Autoload\ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::$files;
|
$includeFiles = Composer\Autoload\ComposerStaticInit10d22a526bd476954b93748a871e7ad4::$files;
|
||||||
} else {
|
} else {
|
||||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||||
}
|
}
|
||||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||||
composerRequiree1af6c9ee1d0c9dfa4a8dcea26b35570($fileIdentifier, $file);
|
composerRequire10d22a526bd476954b93748a871e7ad4($fileIdentifier, $file);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $loader;
|
return $loader;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function composerRequiree1af6c9ee1d0c9dfa4a8dcea26b35570($fileIdentifier, $file)
|
function composerRequire10d22a526bd476954b93748a871e7ad4($fileIdentifier, $file)
|
||||||
{
|
{
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||||
require $file;
|
require $file;
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
namespace Composer\Autoload;
|
namespace Composer\Autoload;
|
||||||
|
|
||||||
class ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570
|
class ComposerStaticInit10d22a526bd476954b93748a871e7ad4
|
||||||
{
|
{
|
||||||
public static $files = array (
|
public static $files = array (
|
||||||
'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
|
'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
|
||||||
@ -54,9 +54,9 @@ class ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570
|
|||||||
public static function getInitializer(ClassLoader $loader)
|
public static function getInitializer(ClassLoader $loader)
|
||||||
{
|
{
|
||||||
return \Closure::bind(function () use ($loader) {
|
return \Closure::bind(function () use ($loader) {
|
||||||
$loader->prefixLengthsPsr4 = ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::$prefixLengthsPsr4;
|
$loader->prefixLengthsPsr4 = ComposerStaticInit10d22a526bd476954b93748a871e7ad4::$prefixLengthsPsr4;
|
||||||
$loader->prefixDirsPsr4 = ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::$prefixDirsPsr4;
|
$loader->prefixDirsPsr4 = ComposerStaticInit10d22a526bd476954b93748a871e7ad4::$prefixDirsPsr4;
|
||||||
$loader->classMap = ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::$classMap;
|
$loader->classMap = ComposerStaticInit10d22a526bd476954b93748a871e7ad4::$classMap;
|
||||||
|
|
||||||
}, null, ClassLoader::class);
|
}, null, ClassLoader::class);
|
||||||
}
|
}
|
@ -1,17 +1,17 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "phpseclib/phpseclib",
|
"name": "phpseclib/phpseclib",
|
||||||
"version": "2.0.9",
|
"version": "2.0.10",
|
||||||
"version_normalized": "2.0.9.0",
|
"version_normalized": "2.0.10.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phpseclib/phpseclib.git",
|
"url": "https://github.com/phpseclib/phpseclib.git",
|
||||||
"reference": "c9a3fe35e20eb6eeaca716d6a23cde03f52d1558"
|
"reference": "d305b780829ea4252ed9400b3f5937c2c99b51d4"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c9a3fe35e20eb6eeaca716d6a23cde03f52d1558",
|
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d305b780829ea4252ed9400b3f5937c2c99b51d4",
|
||||||
"reference": "c9a3fe35e20eb6eeaca716d6a23cde03f52d1558",
|
"reference": "d305b780829ea4252ed9400b3f5937c2c99b51d4",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -19,7 +19,7 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phing/phing": "~2.7",
|
"phing/phing": "~2.7",
|
||||||
"phpunit/phpunit": "~4.0",
|
"phpunit/phpunit": "^4.8.35|^5.7|^6.0",
|
||||||
"sami/sami": "~2.0",
|
"sami/sami": "~2.0",
|
||||||
"squizlabs/php_codesniffer": "~2.0"
|
"squizlabs/php_codesniffer": "~2.0"
|
||||||
},
|
},
|
||||||
@ -29,7 +29,7 @@
|
|||||||
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
|
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
|
||||||
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
|
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
|
||||||
},
|
},
|
||||||
"time": "2017-11-29T06:38:08+00:00",
|
"time": "2018-02-19T04:29:13+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
9
libraries/vdm_io/vendor/htaccess.txt
vendored
Normal file
9
libraries/vdm_io/vendor/htaccess.txt
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Apache 2.4+
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
Require all denied
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
# Apache 2.0-2.2
|
||||||
|
<IfModule !mod_authz_core.c>
|
||||||
|
Deny from all
|
||||||
|
</IfModule>
|
1
libraries/vdm_io/vendor/index.html
vendored
Normal file
1
libraries/vdm_io/vendor/index.html
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
@ -8,7 +8,6 @@ AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509
|
|||||||
|
|
||||||
* [Browse Git](https://github.com/phpseclib/phpseclib)
|
* [Browse Git](https://github.com/phpseclib/phpseclib)
|
||||||
* [Code Coverage Report](https://coverage.phpseclib.org/2.0/latest/)
|
* [Code Coverage Report](https://coverage.phpseclib.org/2.0/latest/)
|
||||||
* Support phpseclib development by [![Becoming a patron](https://img.shields.io/badge/become-patron-brightgreen.svg)](https://www.patreon.com/phpseclib)
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
@ -37,7 +36,7 @@ AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509
|
|||||||
* Composer compatible (PSR-0 autoloading)
|
* Composer compatible (PSR-0 autoloading)
|
||||||
* Install using Composer: `composer require phpseclib/phpseclib ~1.0`
|
* Install using Composer: `composer require phpseclib/phpseclib ~1.0`
|
||||||
* Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
|
* Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
|
||||||
* [Download 1.0.9 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.9.zip/download)
|
* [Download 1.0.10 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.10.zip/download)
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
@ -55,7 +55,7 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phing/phing": "~2.7",
|
"phing/phing": "~2.7",
|
||||||
"phpunit/phpunit": "~4.0",
|
"phpunit/phpunit": "^4.8.35|^5.7|^6.0",
|
||||||
"sami/sami": "~2.0",
|
"sami/sami": "~2.0",
|
||||||
"squizlabs/php_codesniffer": "~2.0"
|
"squizlabs/php_codesniffer": "~2.0"
|
||||||
},
|
},
|
@ -2555,4 +2555,44 @@ abstract class Base
|
|||||||
return $result . pack('H*', sha1($hash));
|
return $result . pack('H*', sha1($hash));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert float to int
|
||||||
|
*
|
||||||
|
* On ARM CPUs converting floats to ints doesn't always work
|
||||||
|
*
|
||||||
|
* @access private
|
||||||
|
* @param string $x
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
function safe_intval($x)
|
||||||
|
{
|
||||||
|
switch (true) {
|
||||||
|
case is_int($x):
|
||||||
|
// PHP 5.3, per http://php.net/releases/5_3_0.php, introduced "more consistent float rounding"
|
||||||
|
case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM':
|
||||||
|
return $x;
|
||||||
|
}
|
||||||
|
return (fmod($x, 0x80000000) & 0x7FFFFFFF) |
|
||||||
|
((fmod(floor($x / 0x80000000), 2) & 1) << 31);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* eval()'able string for in-line float to int
|
||||||
|
*
|
||||||
|
* @access private
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function safe_intval_inline()
|
||||||
|
{
|
||||||
|
switch (true) {
|
||||||
|
case defined('PHP_INT_SIZE') && PHP_INT_SIZE == 8:
|
||||||
|
case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM':
|
||||||
|
return '%s';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$safeint = '(is_int($temp = %s) ? $temp : (fmod($temp, 0x80000000) & 0x7FFFFFFF) | ';
|
||||||
|
return $safeint . '((fmod(floor($temp / 0x80000000), 2) & 1) << 31))';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -294,7 +294,7 @@ class Blowfish extends Base
|
|||||||
function setKeyLength($length)
|
function setKeyLength($length)
|
||||||
{
|
{
|
||||||
if ($length < 32) {
|
if ($length < 32) {
|
||||||
$this->key_length = 7;
|
$this->key_length = 4;
|
||||||
} elseif ($length > 448) {
|
} elseif ($length > 448) {
|
||||||
$this->key_length = 56;
|
$this->key_length = 56;
|
||||||
} else {
|
} else {
|
||||||
@ -408,16 +408,14 @@ class Blowfish extends Base
|
|||||||
|
|
||||||
for ($i = 0; $i < 16; $i+= 2) {
|
for ($i = 0; $i < 16; $i+= 2) {
|
||||||
$l^= $p[$i];
|
$l^= $p[$i];
|
||||||
$r^= ($sb_0[$l >> 24 & 0xff] +
|
$r^= $this->safe_intval(($this->safe_intval($sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]) ^
|
||||||
$sb_1[$l >> 16 & 0xff] ^
|
|
||||||
$sb_2[$l >> 8 & 0xff]) +
|
$sb_2[$l >> 8 & 0xff]) +
|
||||||
$sb_3[$l & 0xff];
|
$sb_3[$l & 0xff]);
|
||||||
|
|
||||||
$r^= $p[$i + 1];
|
$r^= $p[$i + 1];
|
||||||
$l^= ($sb_0[$r >> 24 & 0xff] +
|
$l^= $this->safe_intval(($this->safe_intval($sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]) ^
|
||||||
$sb_1[$r >> 16 & 0xff] ^
|
|
||||||
$sb_2[$r >> 8 & 0xff]) +
|
$sb_2[$r >> 8 & 0xff]) +
|
||||||
$sb_3[$r & 0xff];
|
$sb_3[$r & 0xff]);
|
||||||
}
|
}
|
||||||
return pack("N*", $r ^ $p[17], $l ^ $p[16]);
|
return pack("N*", $r ^ $p[17], $l ^ $p[16]);
|
||||||
}
|
}
|
||||||
@ -443,16 +441,14 @@ class Blowfish extends Base
|
|||||||
|
|
||||||
for ($i = 17; $i > 2; $i-= 2) {
|
for ($i = 17; $i > 2; $i-= 2) {
|
||||||
$l^= $p[$i];
|
$l^= $p[$i];
|
||||||
$r^= ($sb_0[$l >> 24 & 0xff] +
|
$r^= $this->safe_intval(($this->safe_intval($sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]) ^
|
||||||
$sb_1[$l >> 16 & 0xff] ^
|
|
||||||
$sb_2[$l >> 8 & 0xff]) +
|
$sb_2[$l >> 8 & 0xff]) +
|
||||||
$sb_3[$l & 0xff];
|
$sb_3[$l & 0xff]);
|
||||||
|
|
||||||
$r^= $p[$i - 1];
|
$r^= $p[$i - 1];
|
||||||
$l^= ($sb_0[$r >> 24 & 0xff] +
|
$l^= $this->safe_intval(($this->safe_intval($sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]) ^
|
||||||
$sb_1[$r >> 16 & 0xff] ^
|
|
||||||
$sb_2[$r >> 8 & 0xff]) +
|
$sb_2[$r >> 8 & 0xff]) +
|
||||||
$sb_3[$r & 0xff];
|
$sb_3[$r & 0xff]);
|
||||||
}
|
}
|
||||||
return pack("N*", $r ^ $p[0], $l ^ $p[1]);
|
return pack("N*", $r ^ $p[0], $l ^ $p[1]);
|
||||||
}
|
}
|
||||||
@ -478,6 +474,8 @@ class Blowfish extends Base
|
|||||||
$code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
|
$code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$safeint = $this->safe_intval_inline();
|
||||||
|
|
||||||
if (!isset($lambda_functions[$code_hash])) {
|
if (!isset($lambda_functions[$code_hash])) {
|
||||||
switch (true) {
|
switch (true) {
|
||||||
case $gen_hi_opt_code:
|
case $gen_hi_opt_code:
|
||||||
@ -513,16 +511,14 @@ class Blowfish extends Base
|
|||||||
for ($i = 0; $i < 16; $i+= 2) {
|
for ($i = 0; $i < 16; $i+= 2) {
|
||||||
$encrypt_block.= '
|
$encrypt_block.= '
|
||||||
$l^= ' . $p[$i] . ';
|
$l^= ' . $p[$i] . ';
|
||||||
$r^= ($sb_0[$l >> 24 & 0xff] +
|
$r^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]') . ' ^
|
||||||
$sb_1[$l >> 16 & 0xff] ^
|
|
||||||
$sb_2[$l >> 8 & 0xff]) +
|
$sb_2[$l >> 8 & 0xff]) +
|
||||||
$sb_3[$l & 0xff];
|
$sb_3[$l & 0xff]') . ';
|
||||||
|
|
||||||
$r^= ' . $p[$i + 1] . ';
|
$r^= ' . $p[$i + 1] . ';
|
||||||
$l^= ($sb_0[$r >> 24 & 0xff] +
|
$l^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]') . ' ^
|
||||||
$sb_1[$r >> 16 & 0xff] ^
|
|
||||||
$sb_2[$r >> 8 & 0xff]) +
|
$sb_2[$r >> 8 & 0xff]) +
|
||||||
$sb_3[$r & 0xff];
|
$sb_3[$r & 0xff]') . ';
|
||||||
';
|
';
|
||||||
}
|
}
|
||||||
$encrypt_block.= '
|
$encrypt_block.= '
|
||||||
@ -542,16 +538,14 @@ class Blowfish extends Base
|
|||||||
for ($i = 17; $i > 2; $i-= 2) {
|
for ($i = 17; $i > 2; $i-= 2) {
|
||||||
$decrypt_block.= '
|
$decrypt_block.= '
|
||||||
$l^= ' . $p[$i] . ';
|
$l^= ' . $p[$i] . ';
|
||||||
$r^= ($sb_0[$l >> 24 & 0xff] +
|
$r^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]') . ' ^
|
||||||
$sb_1[$l >> 16 & 0xff] ^
|
|
||||||
$sb_2[$l >> 8 & 0xff]) +
|
$sb_2[$l >> 8 & 0xff]) +
|
||||||
$sb_3[$l & 0xff];
|
$sb_3[$l & 0xff]') . ';
|
||||||
|
|
||||||
$r^= ' . $p[$i - 1] . ';
|
$r^= ' . $p[$i - 1] . ';
|
||||||
$l^= ($sb_0[$r >> 24 & 0xff] +
|
$l^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]') . ' ^
|
||||||
$sb_1[$r >> 16 & 0xff] ^
|
|
||||||
$sb_2[$r >> 8 & 0xff]) +
|
$sb_2[$r >> 8 & 0xff]) +
|
||||||
$sb_3[$r & 0xff];
|
$sb_3[$r & 0xff]') . ';
|
||||||
';
|
';
|
||||||
}
|
}
|
||||||
|
|
@ -802,7 +802,12 @@ class Hash
|
|||||||
$result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument;
|
$result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument;
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmod($result, $mod);
|
if ((php_uname('m') & "\xDF\xDF\xDF") != 'ARM') {
|
||||||
|
return fmod($result, $mod);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (fmod($result, 0x80000000) & 0x7FFFFFFF) |
|
||||||
|
((fmod(floor($result / 0x80000000), 2) & 1) << 31);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
@ -296,7 +296,7 @@ class RC2 extends Base
|
|||||||
function setKeyLength($length)
|
function setKeyLength($length)
|
||||||
{
|
{
|
||||||
if ($length < 8) {
|
if ($length < 8) {
|
||||||
$this->default_key_length = 8;
|
$this->default_key_length = 1;
|
||||||
} elseif ($length > 1024) {
|
} elseif ($length > 1024) {
|
||||||
$this->default_key_length = 128;
|
$this->default_key_length = 128;
|
||||||
} else {
|
} else {
|
@ -45,6 +45,10 @@ class Random
|
|||||||
*/
|
*/
|
||||||
static function string($length)
|
static function string($length)
|
||||||
{
|
{
|
||||||
|
if (!$length) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
if (version_compare(PHP_VERSION, '7.0.0', '>=')) {
|
if (version_compare(PHP_VERSION, '7.0.0', '>=')) {
|
||||||
try {
|
try {
|
||||||
return \random_bytes($length);
|
return \random_bytes($length);
|
@ -432,8 +432,10 @@ class Twofish extends Base
|
|||||||
$m2[$q1[$q0[$j] ^ $key[15]] ^ $key[7]] ^
|
$m2[$q1[$q0[$j] ^ $key[15]] ^ $key[7]] ^
|
||||||
$m3[$q1[$q1[$j] ^ $key[16]] ^ $key[8]];
|
$m3[$q1[$q1[$j] ^ $key[16]] ^ $key[8]];
|
||||||
$B = ($B << 8) | ($B >> 24 & 0xff);
|
$B = ($B << 8) | ($B >> 24 & 0xff);
|
||||||
$K[] = $A+= $B;
|
$A = $this->safe_intval($A + $B);
|
||||||
$K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff);
|
$K[] = $A;
|
||||||
|
$A = $this->safe_intval($A + $B);
|
||||||
|
$K[] = ($A << 9 | $A >> 23 & 0x1ff);
|
||||||
}
|
}
|
||||||
for ($i = 0; $i < 256; ++$i) {
|
for ($i = 0; $i < 256; ++$i) {
|
||||||
$S0[$i] = $m0[$q0[$q0[$i] ^ $s4] ^ $s0];
|
$S0[$i] = $m0[$q0[$q0[$i] ^ $s4] ^ $s0];
|
||||||
@ -456,8 +458,10 @@ class Twofish extends Base
|
|||||||
$m2[$q1[$q0[$q0[$j] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^
|
$m2[$q1[$q0[$q0[$j] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^
|
||||||
$m3[$q1[$q1[$q0[$j] ^ $key[24]] ^ $key[16]] ^ $key[8]];
|
$m3[$q1[$q1[$q0[$j] ^ $key[24]] ^ $key[16]] ^ $key[8]];
|
||||||
$B = ($B << 8) | ($B >> 24 & 0xff);
|
$B = ($B << 8) | ($B >> 24 & 0xff);
|
||||||
$K[] = $A+= $B;
|
$A = $this->safe_intval($A + $B);
|
||||||
$K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff);
|
$K[] = $A;
|
||||||
|
$A = $this->safe_intval($A + $B);
|
||||||
|
$K[] = ($A << 9 | $A >> 23 & 0x1ff);
|
||||||
}
|
}
|
||||||
for ($i = 0; $i < 256; ++$i) {
|
for ($i = 0; $i < 256; ++$i) {
|
||||||
$S0[$i] = $m0[$q0[$q0[$q1[$i] ^ $s8] ^ $s4] ^ $s0];
|
$S0[$i] = $m0[$q0[$q0[$q1[$i] ^ $s8] ^ $s4] ^ $s0];
|
||||||
@ -481,8 +485,10 @@ class Twofish extends Base
|
|||||||
$m2[$q1[$q0[$q0[$q0[$j] ^ $key[31]] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^
|
$m2[$q1[$q0[$q0[$q0[$j] ^ $key[31]] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^
|
||||||
$m3[$q1[$q1[$q0[$q1[$j] ^ $key[32]] ^ $key[24]] ^ $key[16]] ^ $key[8]];
|
$m3[$q1[$q1[$q0[$q1[$j] ^ $key[32]] ^ $key[24]] ^ $key[16]] ^ $key[8]];
|
||||||
$B = ($B << 8) | ($B >> 24 & 0xff);
|
$B = ($B << 8) | ($B >> 24 & 0xff);
|
||||||
$K[] = $A+= $B;
|
$A = $this->safe_intval($A + $B);
|
||||||
$K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff);
|
$K[] = $A;
|
||||||
|
$A = $this->safe_intval($A + $B);
|
||||||
|
$K[] = ($A << 9 | $A >> 23 & 0x1ff);
|
||||||
}
|
}
|
||||||
for ($i = 0; $i < 256; ++$i) {
|
for ($i = 0; $i < 256; ++$i) {
|
||||||
$S0[$i] = $m0[$q0[$q0[$q1[$q1[$i] ^ $sc] ^ $s8] ^ $s4] ^ $s0];
|
$S0[$i] = $m0[$q0[$q0[$q1[$q1[$i] ^ $sc] ^ $s8] ^ $s4] ^ $s0];
|
||||||
@ -578,9 +584,9 @@ class Twofish extends Base
|
|||||||
$S1[ $R1 & 0xff] ^
|
$S1[ $R1 & 0xff] ^
|
||||||
$S2[($R1 >> 8) & 0xff] ^
|
$S2[($R1 >> 8) & 0xff] ^
|
||||||
$S3[($R1 >> 16) & 0xff];
|
$S3[($R1 >> 16) & 0xff];
|
||||||
$R2^= $t0 + $t1 + $K[++$ki];
|
$R2^= $this->safe_intval($t0 + $t1 + $K[++$ki]);
|
||||||
$R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31);
|
$R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31);
|
||||||
$R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ($t0 + ($t1 << 1) + $K[++$ki]);
|
$R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ $this->safe_intval($t0 + ($t1 << 1) + $K[++$ki]);
|
||||||
|
|
||||||
$t0 = $S0[ $R2 & 0xff] ^
|
$t0 = $S0[ $R2 & 0xff] ^
|
||||||
$S1[($R2 >> 8) & 0xff] ^
|
$S1[($R2 >> 8) & 0xff] ^
|
||||||
@ -590,9 +596,9 @@ class Twofish extends Base
|
|||||||
$S1[ $R3 & 0xff] ^
|
$S1[ $R3 & 0xff] ^
|
||||||
$S2[($R3 >> 8) & 0xff] ^
|
$S2[($R3 >> 8) & 0xff] ^
|
||||||
$S3[($R3 >> 16) & 0xff];
|
$S3[($R3 >> 16) & 0xff];
|
||||||
$R0^= ($t0 + $t1 + $K[++$ki]);
|
$R0^= $this->safe_intval($t0 + $t1 + $K[++$ki]);
|
||||||
$R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31);
|
$R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31);
|
||||||
$R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ($t0 + ($t1 << 1) + $K[++$ki]);
|
$R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ $this->safe_intval($t0 + ($t1 << 1) + $K[++$ki]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @codingStandardsIgnoreStart
|
// @codingStandardsIgnoreStart
|
||||||
@ -634,9 +640,9 @@ class Twofish extends Base
|
|||||||
$S1[$R1 & 0xff] ^
|
$S1[$R1 & 0xff] ^
|
||||||
$S2[$R1 >> 8 & 0xff] ^
|
$S2[$R1 >> 8 & 0xff] ^
|
||||||
$S3[$R1 >> 16 & 0xff];
|
$S3[$R1 >> 16 & 0xff];
|
||||||
$R3^= $t0 + ($t1 << 1) + $K[--$ki];
|
$R3^= $this->safe_intval($t0 + ($t1 << 1) + $K[--$ki]);
|
||||||
$R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31;
|
$R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31;
|
||||||
$R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ($t0 + $t1 + $K[--$ki]);
|
$R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ $this->safe_intval($t0 + $t1 + $K[--$ki]);
|
||||||
|
|
||||||
$t0 = $S0[$R2 & 0xff] ^
|
$t0 = $S0[$R2 & 0xff] ^
|
||||||
$S1[$R2 >> 8 & 0xff] ^
|
$S1[$R2 >> 8 & 0xff] ^
|
||||||
@ -646,9 +652,9 @@ class Twofish extends Base
|
|||||||
$S1[$R3 & 0xff] ^
|
$S1[$R3 & 0xff] ^
|
||||||
$S2[$R3 >> 8 & 0xff] ^
|
$S2[$R3 >> 8 & 0xff] ^
|
||||||
$S3[$R3 >> 16 & 0xff];
|
$S3[$R3 >> 16 & 0xff];
|
||||||
$R1^= $t0 + ($t1 << 1) + $K[--$ki];
|
$R1^= $this->safe_intval($t0 + ($t1 << 1) + $K[--$ki]);
|
||||||
$R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31;
|
$R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31;
|
||||||
$R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ($t0 + $t1 + $K[--$ki]);
|
$R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ $this->safe_intval($t0 + $t1 + $K[--$ki]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @codingStandardsIgnoreStart
|
// @codingStandardsIgnoreStart
|
||||||
@ -679,6 +685,8 @@ class Twofish extends Base
|
|||||||
$code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
|
$code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$safeint = $this->safe_intval_inline();
|
||||||
|
|
||||||
if (!isset($lambda_functions[$code_hash])) {
|
if (!isset($lambda_functions[$code_hash])) {
|
||||||
switch (true) {
|
switch (true) {
|
||||||
case $gen_hi_opt_code:
|
case $gen_hi_opt_code:
|
||||||
@ -727,9 +735,9 @@ class Twofish extends Base
|
|||||||
$S1[ $R1 & 0xff] ^
|
$S1[ $R1 & 0xff] ^
|
||||||
$S2[($R1 >> 8) & 0xff] ^
|
$S2[($R1 >> 8) & 0xff] ^
|
||||||
$S3[($R1 >> 16) & 0xff];
|
$S3[($R1 >> 16) & 0xff];
|
||||||
$R2^= ($t0 + $t1 + '.$K[++$ki].');
|
$R2^= ' . sprintf($safeint, '$t0 + $t1 + ' . $K[++$ki]) . ';
|
||||||
$R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31);
|
$R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31);
|
||||||
$R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ($t0 + ($t1 << 1) + '.$K[++$ki].');
|
$R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ' . sprintf($safeint, '($t0 + ($t1 << 1) + ' . $K[++$ki] . ')') . ';
|
||||||
|
|
||||||
$t0 = $S0[ $R2 & 0xff] ^
|
$t0 = $S0[ $R2 & 0xff] ^
|
||||||
$S1[($R2 >> 8) & 0xff] ^
|
$S1[($R2 >> 8) & 0xff] ^
|
||||||
@ -739,16 +747,16 @@ class Twofish extends Base
|
|||||||
$S1[ $R3 & 0xff] ^
|
$S1[ $R3 & 0xff] ^
|
||||||
$S2[($R3 >> 8) & 0xff] ^
|
$S2[($R3 >> 8) & 0xff] ^
|
||||||
$S3[($R3 >> 16) & 0xff];
|
$S3[($R3 >> 16) & 0xff];
|
||||||
$R0^= ($t0 + $t1 + '.$K[++$ki].');
|
$R0^= ' . sprintf($safeint, '($t0 + $t1 + ' . $K[++$ki] . ')') . ';
|
||||||
$R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31);
|
$R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31);
|
||||||
$R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ($t0 + ($t1 << 1) + '.$K[++$ki].');
|
$R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ' . sprintf($safeint, '($t0 + ($t1 << 1) + ' . $K[++$ki] . ')') . ';
|
||||||
';
|
';
|
||||||
}
|
}
|
||||||
$encrypt_block.= '
|
$encrypt_block.= '
|
||||||
$in = pack("V4", '.$K[4].' ^ $R2,
|
$in = pack("V4", ' . $K[4] . ' ^ $R2,
|
||||||
'.$K[5].' ^ $R3,
|
' . $K[5] . ' ^ $R3,
|
||||||
'.$K[6].' ^ $R0,
|
' . $K[6] . ' ^ $R0,
|
||||||
'.$K[7].' ^ $R1);
|
' . $K[7] . ' ^ $R1);
|
||||||
';
|
';
|
||||||
|
|
||||||
// Generating decrypt code:
|
// Generating decrypt code:
|
||||||
@ -769,9 +777,9 @@ class Twofish extends Base
|
|||||||
$S1[$R1 & 0xff] ^
|
$S1[$R1 & 0xff] ^
|
||||||
$S2[$R1 >> 8 & 0xff] ^
|
$S2[$R1 >> 8 & 0xff] ^
|
||||||
$S3[$R1 >> 16 & 0xff];
|
$S3[$R1 >> 16 & 0xff];
|
||||||
$R3^= $t0 + ($t1 << 1) + '.$K[--$ki].';
|
$R3^= ' . sprintf($safeint, '$t0 + ($t1 << 1) + ' . $K[--$ki]) . ';
|
||||||
$R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31;
|
$R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31;
|
||||||
$R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ($t0 + $t1 + '.$K[--$ki].');
|
$R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ' . sprintf($safeint, '($t0 + $t1 + '.$K[--$ki] . ')') . ';
|
||||||
|
|
||||||
$t0 = $S0[$R2 & 0xff] ^
|
$t0 = $S0[$R2 & 0xff] ^
|
||||||
$S1[$R2 >> 8 & 0xff] ^
|
$S1[$R2 >> 8 & 0xff] ^
|
||||||
@ -781,16 +789,16 @@ class Twofish extends Base
|
|||||||
$S1[$R3 & 0xff] ^
|
$S1[$R3 & 0xff] ^
|
||||||
$S2[$R3 >> 8 & 0xff] ^
|
$S2[$R3 >> 8 & 0xff] ^
|
||||||
$S3[$R3 >> 16 & 0xff];
|
$S3[$R3 >> 16 & 0xff];
|
||||||
$R1^= $t0 + ($t1 << 1) + '.$K[--$ki].';
|
$R1^= ' . sprintf($safeint, '$t0 + ($t1 << 1) + ' . $K[--$ki]) . ';
|
||||||
$R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31;
|
$R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31;
|
||||||
$R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ($t0 + $t1 + '.$K[--$ki].');
|
$R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ' . sprintf($safeint, '($t0 + $t1 + '.$K[--$ki] . ')') . ';
|
||||||
';
|
';
|
||||||
}
|
}
|
||||||
$decrypt_block.= '
|
$decrypt_block.= '
|
||||||
$in = pack("V4", '.$K[0].' ^ $R2,
|
$in = pack("V4", ' . $K[0] . ' ^ $R2,
|
||||||
'.$K[1].' ^ $R3,
|
' . $K[1] . ' ^ $R3,
|
||||||
'.$K[2].' ^ $R0,
|
' . $K[2] . ' ^ $R0,
|
||||||
'.$K[3].' ^ $R1);
|
' . $K[3] . ' ^ $R1);
|
||||||
';
|
';
|
||||||
|
|
||||||
$lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
|
$lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
|
@ -2141,7 +2141,8 @@ class X509
|
|||||||
$subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier');
|
$subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier');
|
||||||
switch (true) {
|
switch (true) {
|
||||||
case !is_array($authorityKey):
|
case !is_array($authorityKey):
|
||||||
case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
|
case !$subjectKeyID:
|
||||||
|
case isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
|
||||||
$signingCert = $this->currentCert; // working cert
|
$signingCert = $this->currentCert; // working cert
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2158,7 +2159,11 @@ class X509
|
|||||||
$subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca);
|
$subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca);
|
||||||
switch (true) {
|
switch (true) {
|
||||||
case !is_array($authorityKey):
|
case !is_array($authorityKey):
|
||||||
case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
|
case !$subjectKeyID:
|
||||||
|
case isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
|
||||||
|
if (is_array($authorityKey) && isset($authorityKey['authorityCertSerialNumber']) && !$authorityKey['authorityCertSerialNumber']->equals($ca['tbsCertificate']['serialNumber'])) {
|
||||||
|
break 2; // serial mismatch - check other ca
|
||||||
|
}
|
||||||
$signingCert = $ca; // working cert
|
$signingCert = $ca; // working cert
|
||||||
break 3;
|
break 3;
|
||||||
}
|
}
|
||||||
@ -2204,7 +2209,11 @@ class X509
|
|||||||
$subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca);
|
$subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca);
|
||||||
switch (true) {
|
switch (true) {
|
||||||
case !is_array($authorityKey):
|
case !is_array($authorityKey):
|
||||||
case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
|
case !$subjectKeyID:
|
||||||
|
case isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
|
||||||
|
if (is_array($authorityKey) && isset($authorityKey['authorityCertSerialNumber']) && !$authorityKey['authorityCertSerialNumber']->equals($ca['tbsCertificate']['serialNumber'])) {
|
||||||
|
break 2; // serial mismatch - check other ca
|
||||||
|
}
|
||||||
$signingCert = $ca; // working cert
|
$signingCert = $ca; // working cert
|
||||||
break 3;
|
break 3;
|
||||||
}
|
}
|
||||||
@ -2476,6 +2485,10 @@ class X509
|
|||||||
}
|
}
|
||||||
|
|
||||||
$dn = array_values($dn);
|
$dn = array_values($dn);
|
||||||
|
// fix for https://bugs.php.net/75433 affecting PHP 7.2
|
||||||
|
if (!isset($dn[0])) {
|
||||||
|
$dn = array_splice($dn, 0, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2719,7 +2732,9 @@ class X509
|
|||||||
$value = array_pop($value); // Always strip data type.
|
$value = array_pop($value); // Always strip data type.
|
||||||
}
|
}
|
||||||
} elseif (is_object($value) && $value instanceof Element) {
|
} elseif (is_object($value) && $value instanceof Element) {
|
||||||
$callback = create_function('$x', 'return "\x" . bin2hex($x[0]);');
|
$callback = function ($x) {
|
||||||
|
return "\x" . bin2hex($x[0]);
|
||||||
|
};
|
||||||
$value = strtoupper(preg_replace_callback('#[^\x20-\x7E]#', $callback, $value->element));
|
$value = strtoupper(preg_replace_callback('#[^\x20-\x7E]#', $callback, $value->element));
|
||||||
}
|
}
|
||||||
$output.= $desc . '=' . $value;
|
$output.= $desc . '=' . $value;
|
||||||
@ -4079,6 +4094,10 @@ class X509
|
|||||||
}
|
}
|
||||||
|
|
||||||
$extensions = array_values($extensions);
|
$extensions = array_values($extensions);
|
||||||
|
// fix for https://bugs.php.net/75433 affecting PHP 7.2
|
||||||
|
if (!isset($extensions[0])) {
|
||||||
|
$extensions = array_splice($extensions, 0, 0);
|
||||||
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
@ -2868,8 +2868,7 @@ class BigInteger
|
|||||||
switch (MATH_BIGINTEGER_MODE) {
|
switch (MATH_BIGINTEGER_MODE) {
|
||||||
case self::MODE_GMP:
|
case self::MODE_GMP:
|
||||||
$temp = new static();
|
$temp = new static();
|
||||||
$temp->value = gmp_xor($this->value, $x->value);
|
$temp->value = gmp_xor(gmp_abs($this->value), gmp_abs($x->value));
|
||||||
|
|
||||||
return $this->_normalize($temp);
|
return $this->_normalize($temp);
|
||||||
case self::MODE_BCMATH:
|
case self::MODE_BCMATH:
|
||||||
$left = $this->toBytes();
|
$left = $this->toBytes();
|
||||||
@ -2885,6 +2884,7 @@ class BigInteger
|
|||||||
|
|
||||||
$length = max(count($this->value), count($x->value));
|
$length = max(count($this->value), count($x->value));
|
||||||
$result = $this->copy();
|
$result = $this->copy();
|
||||||
|
$result->is_negative = false;
|
||||||
$result->value = array_pad($result->value, $length, 0);
|
$result->value = array_pad($result->value, $length, 0);
|
||||||
$x->value = array_pad($x->value, $length, 0);
|
$x->value = array_pad($x->value, $length, 0);
|
||||||
|
|
@ -349,7 +349,7 @@ class SFTP extends SSH2
|
|||||||
// yields inconsistent behavior depending on how php is compiled. so we left shift -1 (which, in
|
// yields inconsistent behavior depending on how php is compiled. so we left shift -1 (which, in
|
||||||
// two's compliment, consists of all 1 bits) by 31. on 64-bit systems this'll yield 0xFFFFFFFF80000000.
|
// two's compliment, consists of all 1 bits) by 31. on 64-bit systems this'll yield 0xFFFFFFFF80000000.
|
||||||
// that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored.
|
// that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored.
|
||||||
-1 << 31 => 'NET_SFTP_ATTR_EXTENDED'
|
(-1 << 31) & 0xFFFFFFFF => 'NET_SFTP_ATTR_EXTENDED'
|
||||||
);
|
);
|
||||||
// http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3
|
// http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3
|
||||||
// the flag definitions change somewhat in SFTPv5+. if SFTPv5+ support is added to this library, maybe name
|
// the flag definitions change somewhat in SFTPv5+. if SFTPv5+ support is added to this library, maybe name
|
||||||
@ -1147,7 +1147,7 @@ class SFTP extends SSH2
|
|||||||
$temp[$dir] = array();
|
$temp[$dir] = array();
|
||||||
}
|
}
|
||||||
if ($i === $max) {
|
if ($i === $max) {
|
||||||
if (is_object($temp[$dir])) {
|
if (is_object($temp[$dir]) && is_object($value)) {
|
||||||
if (!isset($value->stat) && isset($temp[$dir]->stat)) {
|
if (!isset($value->stat) && isset($temp[$dir]->stat)) {
|
||||||
$value->stat = $temp[$dir]->stat;
|
$value->stat = $temp[$dir]->stat;
|
||||||
}
|
}
|
@ -179,7 +179,7 @@ class Stream
|
|||||||
|
|
||||||
if ($host[0] == '$') {
|
if ($host[0] == '$') {
|
||||||
$host = substr($host, 1);
|
$host = substr($host, 1);
|
||||||
global $$host;
|
global ${$host};
|
||||||
if (($$host instanceof SFTP) === false) {
|
if (($$host instanceof SFTP) === false) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
@ -3623,31 +3623,80 @@ class SSH2
|
|||||||
$this->window_size_server_to_client[$channel]+= $this->window_size;
|
$this->window_size_server_to_client[$channel]+= $this->window_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($type == NET_SSH2_MSG_CHANNEL_EXTENDED_DATA) {
|
switch ($type) {
|
||||||
/*
|
case NET_SSH2_MSG_CHANNEL_EXTENDED_DATA:
|
||||||
if ($client_channel == NET_SSH2_CHANNEL_EXEC) {
|
/*
|
||||||
$this->_send_channel_packet($client_channel, chr(0));
|
if ($client_channel == NET_SSH2_CHANNEL_EXEC) {
|
||||||
}
|
$this->_send_channel_packet($client_channel, chr(0));
|
||||||
*/
|
}
|
||||||
// currently, there's only one possible value for $data_type_code: NET_SSH2_EXTENDED_DATA_STDERR
|
*/
|
||||||
if (strlen($response) < 8) {
|
// currently, there's only one possible value for $data_type_code: NET_SSH2_EXTENDED_DATA_STDERR
|
||||||
return false;
|
if (strlen($response) < 8) {
|
||||||
}
|
return false;
|
||||||
extract(unpack('Ndata_type_code/Nlength', $this->_string_shift($response, 8)));
|
}
|
||||||
$data = $this->_string_shift($response, $length);
|
extract(unpack('Ndata_type_code/Nlength', $this->_string_shift($response, 8)));
|
||||||
$this->stdErrorLog.= $data;
|
$data = $this->_string_shift($response, $length);
|
||||||
if ($skip_extended || $this->quiet_mode) {
|
$this->stdErrorLog.= $data;
|
||||||
continue;
|
if ($skip_extended || $this->quiet_mode) {
|
||||||
}
|
continue 2;
|
||||||
if ($client_channel == $channel && $this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_DATA) {
|
}
|
||||||
return $data;
|
if ($client_channel == $channel && $this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_DATA) {
|
||||||
}
|
return $data;
|
||||||
if (!isset($this->channel_buffers[$channel])) {
|
}
|
||||||
$this->channel_buffers[$channel] = array();
|
if (!isset($this->channel_buffers[$channel])) {
|
||||||
}
|
$this->channel_buffers[$channel] = array();
|
||||||
$this->channel_buffers[$channel][] = $data;
|
}
|
||||||
|
$this->channel_buffers[$channel][] = $data;
|
||||||
|
|
||||||
continue;
|
continue 2;
|
||||||
|
case NET_SSH2_MSG_CHANNEL_REQUEST:
|
||||||
|
if ($this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_CLOSE) {
|
||||||
|
continue 2;
|
||||||
|
}
|
||||||
|
if (strlen($response) < 4) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
extract(unpack('Nlength', $this->_string_shift($response, 4)));
|
||||||
|
$value = $this->_string_shift($response, $length);
|
||||||
|
switch ($value) {
|
||||||
|
case 'exit-signal':
|
||||||
|
$this->_string_shift($response, 1);
|
||||||
|
if (strlen($response) < 4) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
extract(unpack('Nlength', $this->_string_shift($response, 4)));
|
||||||
|
$this->errors[] = 'SSH_MSG_CHANNEL_REQUEST (exit-signal): ' . $this->_string_shift($response, $length);
|
||||||
|
$this->_string_shift($response, 1);
|
||||||
|
if (strlen($response) < 4) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
extract(unpack('Nlength', $this->_string_shift($response, 4)));
|
||||||
|
if ($length) {
|
||||||
|
$this->errors[count($this->errors)].= "\r\n" . $this->_string_shift($response, $length);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel]));
|
||||||
|
$this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel]));
|
||||||
|
|
||||||
|
$this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_EOF;
|
||||||
|
|
||||||
|
continue 3;
|
||||||
|
case 'exit-status':
|
||||||
|
if (strlen($response) < 5) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
extract(unpack('Cfalse/Nexit_status', $this->_string_shift($response, 5)));
|
||||||
|
$this->exit_status = $exit_status;
|
||||||
|
|
||||||
|
// "The client MAY ignore these messages."
|
||||||
|
// -- http://tools.ietf.org/html/rfc4254#section-6.10
|
||||||
|
|
||||||
|
continue 3;
|
||||||
|
default:
|
||||||
|
// "Some systems may not implement signals, in which case they SHOULD ignore this message."
|
||||||
|
// -- http://tools.ietf.org/html/rfc4254#section-6.9
|
||||||
|
continue 3;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($this->channel_status[$channel]) {
|
switch ($this->channel_status[$channel]) {
|
||||||
@ -3732,52 +3781,6 @@ class SSH2
|
|||||||
}
|
}
|
||||||
$this->channel_buffers[$channel][] = $data;
|
$this->channel_buffers[$channel][] = $data;
|
||||||
break;
|
break;
|
||||||
case NET_SSH2_MSG_CHANNEL_REQUEST:
|
|
||||||
if (strlen($response) < 4) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
extract(unpack('Nlength', $this->_string_shift($response, 4)));
|
|
||||||
$value = $this->_string_shift($response, $length);
|
|
||||||
switch ($value) {
|
|
||||||
case 'exit-signal':
|
|
||||||
$this->_string_shift($response, 1);
|
|
||||||
if (strlen($response) < 4) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
extract(unpack('Nlength', $this->_string_shift($response, 4)));
|
|
||||||
$this->errors[] = 'SSH_MSG_CHANNEL_REQUEST (exit-signal): ' . $this->_string_shift($response, $length);
|
|
||||||
$this->_string_shift($response, 1);
|
|
||||||
if (strlen($response) < 4) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
extract(unpack('Nlength', $this->_string_shift($response, 4)));
|
|
||||||
if ($length) {
|
|
||||||
$this->errors[count($this->errors)].= "\r\n" . $this->_string_shift($response, $length);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel]));
|
|
||||||
$this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel]));
|
|
||||||
|
|
||||||
$this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_EOF;
|
|
||||||
|
|
||||||
break;
|
|
||||||
case 'exit-status':
|
|
||||||
if (strlen($response) < 5) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
extract(unpack('Cfalse/Nexit_status', $this->_string_shift($response, 5)));
|
|
||||||
$this->exit_status = $exit_status;
|
|
||||||
|
|
||||||
// "The client MAY ignore these messages."
|
|
||||||
// -- http://tools.ietf.org/html/rfc4254#section-6.10
|
|
||||||
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// "Some systems may not implement signals, in which case they SHOULD ignore this message."
|
|
||||||
// -- http://tools.ietf.org/html/rfc4254#section-6.9
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case NET_SSH2_MSG_CHANNEL_CLOSE:
|
case NET_SSH2_MSG_CHANNEL_CLOSE:
|
||||||
$this->curTimeout = 0;
|
$this->curTimeout = 0;
|
||||||
|
|
47
script.php
47
script.php
@ -3194,6 +3194,10 @@ class com_componentbuilderInstallerScript
|
|||||||
*/
|
*/
|
||||||
function postflight($type, $parent)
|
function postflight($type, $parent)
|
||||||
{
|
{
|
||||||
|
// get application
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
// We check if we have dynamic folders to copy
|
||||||
|
$this->setDynamicF0ld3rs($app, $parent);
|
||||||
// set the default component settings
|
// set the default component settings
|
||||||
if ($type == 'install')
|
if ($type == 'install')
|
||||||
{
|
{
|
||||||
@ -4736,10 +4740,53 @@ class com_componentbuilderInstallerScript
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// check if this install has the libraries in the helper folder, if so remove it
|
||||||
|
$vendorPath = JPATH_ADMINISTRATOR . '/components/com_componentbuilder/helpers/vendor';
|
||||||
|
if (JFolder::exists($vendorPath))
|
||||||
|
{
|
||||||
|
ComponentbuilderHelper::removeFolder($vendorPath);
|
||||||
|
// set a notice that this was done
|
||||||
|
$app->enqueueMessage('<p><b>Best Practice!</b><br />We have removed the composer-vendor folder from the /administrator/components/com_componentbuilder/helpers/ folder and placed it in the /libraries/vdm_io/ folder.</p>', 'Notice');
|
||||||
|
}
|
||||||
echo '<a target="_blank" href="http://joomlacomponentbuilder.com" title="Component Builder">
|
echo '<a target="_blank" href="http://joomlacomponentbuilder.com" title="Component Builder">
|
||||||
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
||||||
</a>
|
</a>
|
||||||
<h3>Upgrade to Version 2.6.17 Was Successful! Let us know if anything is not working as expected.</h3>';
|
<h3>Upgrade to Version 2.6.17 Was Successful! Let us know if anything is not working as expected.</h3>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to set/copy dynamic folders into place (use with caution)
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function setDynamicF0ld3rs($app, $parent)
|
||||||
|
{
|
||||||
|
// get the instalation path
|
||||||
|
$installer = $parent->getParent();
|
||||||
|
$installPath = $installer->getPath('source');
|
||||||
|
// get all the folders
|
||||||
|
$folders = JFolder::folders($installPath);
|
||||||
|
// check if we have folders we may want to copy
|
||||||
|
$doNotCopy = array('media','admin','site'); // Joomla already deals with these
|
||||||
|
if (count($folders) > 1)
|
||||||
|
{
|
||||||
|
foreach ($folders as $folder)
|
||||||
|
{
|
||||||
|
// Only copy if not a standard folders
|
||||||
|
if (!in_array($folder, $doNotCopy))
|
||||||
|
{
|
||||||
|
// set the source path
|
||||||
|
$src = $installPath.'/'.$folder;
|
||||||
|
// set the destination path
|
||||||
|
$dest = JPATH_ROOT.'/'.$folder;
|
||||||
|
// now try to copy the folder
|
||||||
|
if (!JFolder::copy($src, $dest, '', true))
|
||||||
|
{
|
||||||
|
$app->enqueueMessage('Could not copy '.$folder.' folder into place, please make sure destination is writable!', 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,115 +50,6 @@ class ComponentbuilderControllerApi extends JControllerForm
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function handshake()
|
|
||||||
{
|
|
||||||
// get input values
|
|
||||||
$input = JFactory::getApplication()->input;
|
|
||||||
// get Trust
|
|
||||||
$PUBLIC = $input->post->get('VDM_PUBLIC', null, 'STRING');
|
|
||||||
$SECRET = $input->post->get('VDM_SECRET', null, 'STRING');
|
|
||||||
$ID = $input->post->get('VDM_ID', null, 'STRING');
|
|
||||||
// check if correct value is given
|
|
||||||
if (ComponentbuilderHelper::checkString($PUBLIC) && ComponentbuilderHelper::checkString($SECRET) && ComponentbuilderHelper::checkString($ID))
|
|
||||||
{
|
|
||||||
// use the JCB open public protocol to open this
|
|
||||||
$opened = ComponentbuilderHelper::openPublicProtocol($SECRET, $ID, $PUBLIC);
|
|
||||||
// simple check to have a little more hoops
|
|
||||||
if (ComponentbuilderHelper::checkString($opened['public']) && ComponentbuilderHelper::checkString($opened['id'])
|
|
||||||
&& strpos($opened['public'], '-----BEGIN PUBLIC KEY-----') !== false
|
|
||||||
&& strpos($opened['public'], '-----END PUBLIC KEY-----') !== false
|
|
||||||
&& strpos($opened['id'], 'VDM_') !== false
|
|
||||||
&& strpos($opened['id'], '_SP') !== false)
|
|
||||||
&& ComponentbuilderHelper::checkObject(ComponentbuilderHelper::crypt('RSA')))
|
|
||||||
{
|
|
||||||
array('public' => ComponentbuilderHelper::getPublicKey($opened['id'], $opened['public']), 'id' => $opened['id']), $opened['public']
|
|
||||||
ComponentbuilderHelper::crypt();
|
|
||||||
// clear session
|
|
||||||
JFactory::getApplication()->getSession()->destroy();
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// die since have no trust
|
|
||||||
echo 12;
|
|
||||||
// clear session
|
|
||||||
JFactory::getApplication()->getSession()->destroy();
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function trust()
|
|
||||||
{
|
|
||||||
// get input values
|
|
||||||
$input = JFactory::getApplication()->input;
|
|
||||||
// get Trust
|
|
||||||
$TRUST = $input->post->get('VDM_TRUST', null, 'STRING');
|
|
||||||
// check if correct value is given
|
|
||||||
if (ComponentbuilderHelper::checkString($TRUST))
|
|
||||||
{
|
|
||||||
$key = ComponentbuilderHelper::salt(1, 2);
|
|
||||||
// get the trust
|
|
||||||
$trustArray = ComponentbuilderHelper::unlock($TRUST, $key, null);
|
|
||||||
// check the array
|
|
||||||
if (ComponentbuilderHelper::checkArray($trustArray)
|
|
||||||
&& isset($trustArray['request_id']) && is_numeric($trustArray['request_id'])
|
|
||||||
&& isset($trustArray['chain']) && ComponentbuilderHelper::checkArray($trustArray['chain'])
|
|
||||||
&& isset($trustArray['url']) && ComponentbuilderHelper::checkString($trustArray['url'])
|
|
||||||
&& isset($trustArray['path']) && ComponentbuilderHelper::checkString($trustArray['path'])
|
|
||||||
&& isset($trustArray['email']) && ComponentbuilderHelper::checkString($trustArray['email'])
|
|
||||||
&& isset($trustArray['name']) && ComponentbuilderHelper::checkString($trustArray['name'])
|
|
||||||
&& isset($trustArray['method']) && is_numeric($trustArray['method']) && $trustArray['method'] > 0)
|
|
||||||
{
|
|
||||||
// send the request
|
|
||||||
echo ComponentbuilderHelper::requestTrust($trustArray);
|
|
||||||
// clear session
|
|
||||||
JFactory::getApplication()->getSession()->destroy();
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// die since have no trust
|
|
||||||
echo 12;
|
|
||||||
// clear session
|
|
||||||
JFactory::getApplication()->getSession()->destroy();
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function itrust()
|
|
||||||
{
|
|
||||||
// get input values
|
|
||||||
$input = JFactory::getApplication()->input;
|
|
||||||
// get allowed string
|
|
||||||
$allow = $input->get('allow', null, 'STRING');
|
|
||||||
// check if correct value is given
|
|
||||||
if (ComponentbuilderHelper::checkString($allow))
|
|
||||||
{
|
|
||||||
// get the request ID
|
|
||||||
$request_id = ComponentbuilderHelper::unlock($allow, null, 4);
|
|
||||||
// check the array
|
|
||||||
if (ComponentbuilderHelper::checkString($request_id)
|
|
||||||
&& strpos($request_id, 'VDM_') !== false
|
|
||||||
&& strpos($request_id, '_SP') !== false)
|
|
||||||
{
|
|
||||||
$request_id = str_replace(array('VDM_', '_SP'), '', $request_id);
|
|
||||||
$request_id = (string) 'VDM_' . preg_replace("/[^0-9]/", "", $request_id) . '_SP';
|
|
||||||
if ($id = ComponentbuilderHelper::getVar('trust_site', $request_id, 'request_id', 'id'))
|
|
||||||
{
|
|
||||||
if ($message = ComponentbuilderHelper::confirmTrust($id))
|
|
||||||
{
|
|
||||||
// push out the message
|
|
||||||
echo $message;
|
|
||||||
// clear session
|
|
||||||
JFactory::getApplication()->getSession()->destroy();
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// clear session
|
|
||||||
JFactory::getApplication()->getSession()->destroy();
|
|
||||||
// die since have no trust
|
|
||||||
jexit('Restricted access');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function backup()
|
public function backup()
|
||||||
{
|
{
|
||||||
// get params first
|
// get params first
|
||||||
|
@ -1050,7 +1050,7 @@ abstract class ComponentbuilderHelper
|
|||||||
if (!self::$composer)
|
if (!self::$composer)
|
||||||
{
|
{
|
||||||
// load the autoloader
|
// load the autoloader
|
||||||
require_once JPATH_ADMINISTRATOR.'/components/com_componentbuilder/helpers/vendor/autoload.php';
|
require_once JPATH_SITE.'/libraries/vdm_io/vendor/autoload.php';
|
||||||
// do not load again
|
// do not load again
|
||||||
self::$composer = true;
|
self::$composer = true;
|
||||||
}
|
}
|
||||||
@ -1160,7 +1160,7 @@ abstract class ComponentbuilderHelper
|
|||||||
if (!class_exists('\phpseclib\Net\SFTP'))
|
if (!class_exists('\phpseclib\Net\SFTP'))
|
||||||
{
|
{
|
||||||
// class not in place so send out error
|
// class not in place so send out error
|
||||||
JFactory::getApplication()->enqueueMessage(JText::_('COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_ADMINHELPERSVENDOR_FOLDER_OF_JCB_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO'), 'Error');
|
JFactory::getApplication()->enqueueMessage(JText::_('COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_BLIBRARIESVDM_IOVENDORB_FOLDER_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO'), 'Error');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// insure the port is set
|
// insure the port is set
|
||||||
|
@ -38,7 +38,7 @@ COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_BIMPORT_PROCES
|
|||||||
COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_IMPORT_PROCESS_BEFORE_ADDING_THE_KEY_THIS_WAY_IF_THE_USERDEV_DOES_NOT_HAVE_THE_KEY_THEY_CAN_SEE_WHERE_TO_GET_IT="Since the owner details are displayed during import process before adding the key, this way if the user/dev does not have the key they can see where to get it."
|
COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_IMPORT_PROCESS_BEFORE_ADDING_THE_KEY_THIS_WAY_IF_THE_USERDEV_DOES_NOT_HAVE_THE_KEY_THEY_CAN_SEE_WHERE_TO_GET_IT="Since the owner details are displayed during import process before adding the key, this way if the user/dev does not have the key they can see where to get it."
|
||||||
COM_COMPONENTBUILDER_THAT_MEANS_ANYONE_WHO_HAS_THIS_PACKAGE_CAN_INSTALL_IT_INTO_JCB_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_BSETTINGSB_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_BEXPORT_KEYB="That means anyone who has this package can install it into JCB. To add an export key simply open the component, go to the tab called <b>settings</b>, bottom right there is a field called <b>Export Key</b>."
|
COM_COMPONENTBUILDER_THAT_MEANS_ANYONE_WHO_HAS_THIS_PACKAGE_CAN_INSTALL_IT_INTO_JCB_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_BSETTINGSB_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_BEXPORT_KEYB="That means anyone who has this package can install it into JCB. To add an export key simply open the component, go to the tab called <b>settings</b>, bottom right there is a field called <b>Export Key</b>."
|
||||||
COM_COMPONENTBUILDER_THAT_MEANS_ANYONE_WHO_HAS_THIS_PACKAGE_CAN_INSTALL_IT_INTO_JCB_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_SETTINGS_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_EXPORT_KEY="That means anyone who has this package can install it into JCB. To add an export key simply open the component, go to the tab called settings, bottom right there is a field called Export Key."
|
COM_COMPONENTBUILDER_THAT_MEANS_ANYONE_WHO_HAS_THIS_PACKAGE_CAN_INSTALL_IT_INTO_JCB_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_SETTINGS_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_EXPORT_KEY="That means anyone who has this package can install it into JCB. To add an export key simply open the component, go to the tab called settings, bottom right there is a field called Export Key."
|
||||||
COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_ADMINHELPERSVENDOR_FOLDER_OF_JCB_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO="The <b>phpseclib\NET\SFTP</b> library\class is not available! This library\class should have been added to your admin/helpers/vendor folder of JCB. Please contact your system administrator for more info"
|
COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_BLIBRARIESVDM_IOVENDORB_FOLDER_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO="The <b>phpseclib\NET\SFTP</b> library\class is not available! This library\class should have been added to your <b>libraries/vdm_io/vendor</b> folder. Please contact your system administrator for more info"
|
||||||
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_PATH_ON_BSB_SERVER="The <b>%s</b> file could not be moved to <b>%s</b> path on <b>%s</b> server."
|
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_PATH_ON_BSB_SERVER="The <b>%s</b> file could not be moved to <b>%s</b> path on <b>%s</b> server."
|
||||||
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_SERVER="The <b>%s</b> file could not be moved to <b>%s</b> server."
|
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_SERVER="The <b>%s</b> file could not be moved to <b>%s</b> server."
|
||||||
COM_COMPONENTBUILDER_THE_FTP_CONNECTION_FOR_BSB_COULD_NOT_BE_MADE_PLEASE_CHECK_YOUR_SIGNATURE_DETAILS="The FTP connection for <b>%s</b> could not be made. Please check your signature details!"
|
COM_COMPONENTBUILDER_THE_FTP_CONNECTION_FOR_BSB_COULD_NOT_BE_MADE_PLEASE_CHECK_YOUR_SIGNATURE_DETAILS="The FTP connection for <b>%s</b> could not be made. Please check your signature details!"
|
||||||
|
Loading…
Reference in New Issue
Block a user