modified file plugins
This commit is contained in:
wp-content/upgrade-temp-backup/plugins
activitypub
.distignoreLICENSEactivitypub.php
assets
includes
class-activity-dispatcher.phpclass-activitypub.phpclass-admin.phpclass-debug.phpclass-hashtag.phpclass-health-check.phpclass-mention.phpclass-shortcodes.phpclass-signature.phpclass-webfinger.phpdebug.phpfunctions.phphelp.php
model
peer
rest
class-followers.phpclass-following.phpclass-inbox.phpclass-nodeinfo.phpclass-ostatus.phpclass-outbox.phpclass-webfinger.php
table
integration
readme.txttemplates
authldap
gp-premium
backgrounds
blog
functions
generate-blog.phpcolors
functions
generate-colors.phpcopyright
disable-elements
dist
block-elements.asset.phpblock-elements.cssblock-elements.jscustomizer.asset.phpcustomizer.jsdashboard.asset.phpdashboard.jseditor.asset.phpeditor.csseditor.jssite-library.asset.phpsite-library.csssite-library.jsstyle-dashboard.css
elements
assets
admin
author-image-placeholder.pngbackground-image-fallback.jpgballoon.csselements.csselements.jsfeatured-image-placeholder.pngmetabox.cssmetabox.jsspinner.gif
js
general
gp-premium.phphooks
inc
langs
gp-premium-ar.mogp-premium-bn_BD.mogp-premium-cs_CZ.mogp-premium-da_DK.mogp-premium-de_DE-42da344ccb044413769d16ed3484307b.jsongp-premium-de_DE-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-de_DE-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-de_DE.mogp-premium-es_AR.mogp-premium-es_ES-42da344ccb044413769d16ed3484307b.jsongp-premium-es_ES-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-es_ES-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-es_ES-cbab080b0f20fd6c323029398be6c986.jsongp-premium-es_ES-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-es_ES.mogp-premium-fi-42da344ccb044413769d16ed3484307b.jsongp-premium-fi-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-fi-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-fi-cbab080b0f20fd6c323029398be6c986.jsongp-premium-fi-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-fi.mogp-premium-fr_FR-42da344ccb044413769d16ed3484307b.jsongp-premium-fr_FR-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-fr_FR-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-fr_FR.mogp-premium-hr.mogp-premium-hu_HU.mogp-premium-it_IT.mogp-premium-nb_NO.mogp-premium-nl_NL-42da344ccb044413769d16ed3484307b.jsongp-premium-nl_NL-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-nl_NL-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-nl_NL-cbab080b0f20fd6c323029398be6c986.jsongp-premium-nl_NL-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-nl_NL.mogp-premium-pl_PL.mogp-premium-pt_BR.mogp-premium-pt_PT-42da344ccb044413769d16ed3484307b.jsongp-premium-pt_PT-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-pt_PT-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-pt_PT.mogp-premium-ru_RU-42da344ccb044413769d16ed3484307b.jsongp-premium-ru_RU-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-ru_RU-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-ru_RU.mogp-premium-sv_SE-42da344ccb044413769d16ed3484307b.jsongp-premium-sv_SE-53e2a1d5945b8d2b1c35e81ae1e532f3.jsongp-premium-sv_SE-92fa58377f1b6f7bef9c785c31ae29ff.jsongp-premium-sv_SE-cbab080b0f20fd6c323029398be6c986.jsongp-premium-sv_SE-ecf9f3c2af10c4f2dfbf4f42504922d1.jsongp-premium-sv_SE.mogp-premium-uk.mogp-premium-vi.mogp-premium-zh_CN.mo
library
alpha-color-picker
class-make-css.phpclass-plugin-updater.phpcustomizer-helpers.phpcustomizer
active-callbacks.php
controls
class-action-button-control.phpclass-alpha-color-control.phpclass-backgrounds-control.phpclass-control-toggle.phpclass-copyright-control.phpclass-deprecated.phpclass-information-control.phpclass-range-slider-control.phpclass-refresh-button-control.phpclass-section-shortcuts-control.phpclass-spacing-control.phpclass-title-control.phpclass-typography-control.php
deprecated.phpsanitize.phpcss
alpha-color-picker.cssbutton-actions.csscontrol-toggle-customizer.csssection-shortcuts.cssselectWoo.min.cssslider-customizer.cssspacing-customizer.csstitle-customizer.csstransparency-grid.pngtypography-customizer.css
js
select2
menu-plus
fields
functions
css
menu-logo.cssmenu-logo.min.cssnavigation-branding-flex.cssnavigation-branding-flex.min.cssnavigation-branding.cssnavigation-branding.min.cssoffside.cssoffside.min.csssticky.csssticky.min.css
generate-menu-plus.phpjs
page-header
functions
generate-page-header.phpsecondary-nav
fields
functions
css.php
generate-secondary-nav.phpcss
main-mobile.cssmain-mobile.min.cssmain.cssmain.min.cssstyle-mobile.cssstyle-mobile.min.cssstyle.cssstyle.min.css
functions.phpjs
sections
functions
generate-sections.phpsite-library
class-site-library-helper.phpclass-site-library-rest.phpclass-site-library.php
classes
class-beaver-builder-batch-processing.phpclass-content-importer.phpclass-site-import-image.phpclass-site-widget-importer.php
libs
spacing
functions
customizer
content-spacing.phpfooter-spacing.phpheader-spacing.php
functions.phpmigration.phpjs
navigation-spacing.phpsecondary-nav-spacing.phpsidebar-spacing.phptop-bar-spacing.phptypography
functions
functions.phpgoogle-fonts.json
generate-fonts.phpjs
migration.phpsecondary-nav-fonts.phpslideout-nav-fonts.phpwoocommerce-fonts.phpwoocommerce
wpml-config.xmljetpack-protect
CHANGELOG.mdLICENSE.txtSECURITY.mdi18n-map.phpreadme.txt
assets
fonts
jetpack-protect.cssbuild
composer.jsonjetpack-protect.phpjetpack_vendor
automattic
jetpack-a8c-mc-stats
jetpack-admin-ui
jetpack-assets
jetpack-config
jetpack-connection
CHANGELOG.mdLICENSE.txtSECURITY.mdTRACKING.mdcomposer.json
dist
legacy
class-jetpack-ixr-client.phpclass-jetpack-ixr-clientmulticall.phpclass-jetpack-options.phpclass-jetpack-signature.phpclass-jetpack-tracks-client.phpclass-jetpack-tracks-event.phpclass-jetpack-xmlrpc-server.php
src
class-client.phpclass-connection-notice.phpclass-error-handler.phpclass-heartbeat.phpclass-initial-state.phpclass-manager.phpclass-nonce-handler.phpclass-package-version-tracker.phpclass-package-version.phpclass-plugin-storage.phpclass-plugin.phpclass-rest-authentication.phpclass-rest-connector.phpclass-secrets.phpclass-server-sandbox.phpclass-terms-of-service.phpclass-tokens.phpclass-tracking.phpclass-urls.phpclass-utils.phpclass-webhooks.phpclass-xmlrpc-async-call.phpclass-xmlrpc-connector.phpinterface-manager.php
webhooks
jetpack-constants
jetpack-device-detection
jetpack-identity-crisis
jetpack-ip
jetpack-jitm
jetpack-licensing
jetpack-logo
jetpack-my-jetpack
CHANGELOG.mdLICENSE.txtSECURITY.mdcomposer.json
build
images
apple-92dacafad84e79708a74.svgboost-a54137485af36fdffe9c.pngcloud-81ac85ba680343200f54.svgconnect-f27775ac15cf885713c2.pngcrm-7e7684ae2c40327d8fed.pngdisconnect-confirm-dc9fe8f5c68cfd1320e0.jpgdisconnect-thanks-5873bfac56a9bd7322cd.jpgempty-avatar-fea23feddfa99b07c2e8.svgextras-26daf36507504c96d066.pnggoogle-dec2a429bf1d8e83f9ad.svgjetpack-9de1caef5eb5c22da5d6.svgjetpack-license-activation-with-lock-7b01c1a4cf56de799cd7.pngjetpack-license-activation-with-success-cad524ede4e793cc0ece.pngsearch-f9756bd9c926d905fe70.pngvideopress-9591093a9a238cc48a35.pngwordpress-1fc3e0ba6c52e9707900.svg
index.asset.phpindex.cssindex.jsindex.js.LICENSE.txtindex.rtl.csssrc
jetpack-partner
jetpack-password-checker
jetpack-plugins-installer
jetpack-redirect
jetpack-roles
jetpack-status
jetpack-sync
CHANGELOG.mdLICENSE.txtSECURITY.mdcomposer.json
src
class-actions.phpclass-data-settings.phpclass-dedicated-sender.phpclass-default-filter-settings.phpclass-defaults.phpclass-functions.phpclass-health.phpclass-json-deflate-array-codec.phpclass-listener.phpclass-lock.phpclass-main.phpclass-modules.phpclass-package-version.phpclass-queue-buffer.phpclass-queue.phpclass-replicastore.phpclass-rest-endpoints.phpclass-rest-sender.phpclass-sender.phpclass-server.phpclass-settings.phpclass-simple-codec.phpclass-users.phpclass-utils.phpinterface-codec.phpinterface-replicastore.php
modules
class-attachments.phpclass-callables.phpclass-comments.phpclass-constants.phpclass-full-sync-immediately.phpclass-full-sync.phpclass-import.phpclass-menus.phpclass-meta.phpclass-module.phpclass-network-options.phpclass-options.phpclass-plugins.phpclass-posts.phpclass-protect.phpclass-search.phpclass-stats.phpclass-term-relationships.phpclass-terms.phpclass-themes.phpclass-updates.phpclass-users.phpclass-woocommerce.phpclass-wp-super-cache.php
replicastore
jetpack-transport-helper
jetpack-waf
.phpcsignoreCHANGELOG.mdLICENSE.txtSECURITY.mdcli.phpcomposer.json
src
brute-force-protection
class-blocked-login-page.phpclass-math-fallback.phpclass-shared-functions.phpclass-transient-cleanup.php
class-brute-force-protection.phpclass-compatibility.phpclass-rest-controller.phpclass-waf-cli.phpclass-waf-constants.phpclass-waf-initializer.phpclass-waf-operators.phpclass-waf-request.phpclass-waf-rules-manager.phpclass-waf-runner.phpclass-waf-runtime.phpclass-waf-standalone-bootstrap.phpclass-waf-stats.phpclass-waf-transforms.phpexceptions
functions.phpsrc
class-credentials.phpclass-jetpack-protect.phpclass-plan.phpclass-protect-status.phpclass-rest-controller.phpclass-scan-status.phpclass-site-health.phpclass-status.phpclass-threats.php
models
vendor
autoload.phpautoload_packages.php
automattic
jetpack-plans
composer
ClassLoader.phpInstalledVersions.phpLICENSEautoload_classmap.phpautoload_files.phpautoload_namespaces.phpautoload_psr4.phpautoload_real.phpautoload_static.phpinstalled.jsoninstalled.phpjetpack_autoload_classmap.phpjetpack_autoload_filemap.phpplatform_check.php
jetpack-autoloader
class-autoloader-handler.phpclass-autoloader-locator.phpclass-autoloader.phpclass-container.phpclass-hook-manager.phpclass-latest-autoloader-guard.phpclass-manifest-reader.phpclass-path-processor.phpclass-php-autoloader.phpclass-plugin-locator.phpclass-plugins-handler.phpclass-shutdown-handler.phpclass-version-loader.phpclass-version-selector.php
wikimedia
aho-corasick
menu-icons
CHANGELOG.mdCONTRIBUTING.mdLICENSE
css
images
includes
js
languages
mailin.phpmenu-icons.phpreadme.mdreadme.txtvendor
autoload.php
codeinwp
gutenberg-menu-icons
icon-picker
LICENSE
css
icon-picker.cssicon-picker.min.css
icon-picker.phptypes
Elusive-Icons.eotElusive-Icons.svgElusive-Icons.ttfElusive-Icons.woffGenericons.eotGenericons.svgGenericons.ttfGenericons.woffelusive.csselusive.min.cssfont-awesome.cssfont-awesome.min.cssfontawesome-webfont.eotfontawesome-webfont.svgfontawesome-webfont.ttffontawesome-webfont.wofffontawesome-webfont.woff2foundation-icons.cssfoundation-icons.eotfoundation-icons.min.cssfoundation-icons.svgfoundation-icons.ttffoundation-icons.woffgenericons.cssgenericons.min.css
includes
js
languages
readme.txtmenu-item-custom-fields
themeisle-sdk
CHANGELOG.mdLICENSEindex.phpload.phppostcss.config.jsstart.php
assets
images
js
src
Common
Loader.phpModules
About_us.phpCompatibilities.phpDashboard_widget.phpLicenser.phpLogger.phpNotification.phpPromotions.phpRecommendation.phpReview.phpRollback.phpTranslate.phpUninstall_feedback.phpWelcome.php
Product.phpcomposer
smtp-mailer
two-factor
LICENSE.md
assets
banner-1544x500.pngbanner-772x250.pngicon-128x128.pngicon-256x256.pngicon.svgscreenshot-1.pngscreenshot-2.pngscreenshot-3.png
class-two-factor-compat.phpclass-two-factor-core.phpincludes
providers
class-two-factor-backup-codes.phpclass-two-factor-dummy.phpclass-two-factor-email.phpclass-two-factor-fido-u2f-admin-list-table.phpclass-two-factor-fido-u2f-admin.phpclass-two-factor-fido-u2f.phpclass-two-factor-provider.phpclass-two-factor-totp.php
readme.txttwo-factor.phpuser-edit.csscss
js
w3-total-cache
Base_Page_Settings.phpBrowserCache_ConfigLabels.phpBrowserCache_Core.phpBrowserCache_Environment.phpBrowserCache_Environment_Apache.phpBrowserCache_Environment_LiteSpeed.phpBrowserCache_Environment_Nginx.phpBrowserCache_Page.phpBrowserCache_Page_View_QuickReference.phpBrowserCache_Page_View_SectionSecurity.phpBrowserCache_Plugin.phpBrowserCache_Plugin_Admin.phpCache.phpCacheFlush.phpCacheFlush_Locally.phpCacheGroups_Plugin_Admin.phpCacheGroups_Plugin_Admin_View.jsCacheGroups_Plugin_Admin_View.phpCache_Apc.phpCache_Apcu.phpCache_Base.phpCache_Eaccelerator.phpCache_File.phpCache_File_Cleaner.phpCache_File_Cleaner_Generic.phpCache_File_Cleaner_Generic_HardDelete.phpCache_File_Generic.phpCache_Memcache.phpCache_Memcached.phpCache_Memcached_Stats.phpCache_Nginx_Memcached.phpCache_Redis.phpCache_Wincache.phpCache_Xcache.phpCdnEngine.phpCdnEngine_Azure.phpCdnEngine_Base.phpCdnEngine_CloudFront.phpCdnEngine_Ftp.phpCdnEngine_GoogleDrive.phpCdnEngine_Mirror.phpCdnEngine_Mirror_Akamai.phpCdnEngine_Mirror_Att.phpCdnEngine_Mirror_CloudFront.phpCdnEngine_Mirror_Cotendo.phpCdnEngine_Mirror_Edgecast.phpCdnEngine_Mirror_Highwinds.phpCdnEngine_Mirror_LimeLight.phpCdnEngine_Mirror_RackSpaceCdn.phpCdnEngine_Mirror_StackPath.phpCdnEngine_Mirror_StackPath2.phpCdnEngine_RackSpaceCloudFiles.phpCdnEngine_S3.phpCdnEngine_S3_Compatible.phpCdn_AdminActions.phpCdn_AdminNotes.phpCdn_CacheFlush.phpCdn_ConfigLabels.phpCdn_Core.phpCdn_Core_Admin.phpCdn_Environment.phpCdn_Environment_LiteSpeed.phpCdn_Environment_Nginx.phpCdn_GeneralPage_View.phpCdn_GoogleDrive_AdminActions.phpCdn_GoogleDrive_Page.phpCdn_GoogleDrive_Page_View.jsCdn_GoogleDrive_Page_View.phpCdn_GoogleDrive_Popup_AuthReturn.phpCdn_GoogleDrive_Popup_AuthReturn_View.phpCdn_Highwinds_Api.phpCdn_Highwinds_Page.phpCdn_Highwinds_Page_View.jsCdn_Highwinds_Page_View.phpCdn_Highwinds_Popup.phpCdn_Highwinds_Popup_View_ConfigureCnamesForm.phpCdn_Highwinds_Popup_View_Intro.phpCdn_Highwinds_Popup_View_SelectHost.phpCdn_Highwinds_Widget.phpCdn_Highwinds_Widget_View.cssCdn_Highwinds_Widget_View.jsCdn_Highwinds_Widget_View.phpCdn_Highwinds_Widget_View_NotConfigured.phpCdn_LimeLight_Page.phpCdn_LimeLight_Page_View.jsCdn_LimeLight_Page_View.phpCdn_LimeLight_Popup.phpCdn_LimeLight_Popup_View_Intro.phpCdn_LimeLight_Popup_View_Success.phpCdn_Page.phpCdn_Page_View_Fsd_HeaderActions.phpCdn_Page_View_Header.phpCdn_Plugin.phpCdn_Plugin_Admin.phpCdn_RackSpaceCdn_AdminActions.phpCdn_RackSpaceCdn_Page.phpCdn_RackSpaceCdn_Page_View.jsCdn_RackSpaceCdn_Page_View.phpCdn_RackSpaceCdn_Popup.phpCdn_RackSpaceCdn_Popup_View_ConfigureDomains.phpCdn_RackSpaceCdn_Popup_View_Intro.phpCdn_RackSpaceCdn_Popup_View_Regions.phpCdn_RackSpaceCdn_Popup_View_Service_Actualize.phpCdn_RackSpaceCdn_Popup_View_Service_Create.phpCdn_RackSpaceCdn_Popup_View_Service_Created.phpCdn_RackSpaceCdn_Popup_View_Services.phpCdn_RackSpaceCloudFiles_Page.phpCdn_RackSpaceCloudFiles_Page_View.jsCdn_RackSpaceCloudFiles_Page_View.phpCdn_RackSpaceCloudFiles_Popup.phpCdn_RackSpaceCloudFiles_Popup_View_Containers.phpCdn_RackSpaceCloudFiles_Popup_View_Intro.phpCdn_RackSpaceCloudFiles_Popup_View_Regions.phpCdn_RackSpace_Api_CaCert-example.pemCdn_RackSpace_Api_Cdn.phpCdn_RackSpace_Api_CloudFiles.phpCdn_RackSpace_Api_CloudFilesCdn.phpCdn_RackSpace_Api_Tokens.phpCdn_StackPath2_Api.phpCdn_StackPath2_Page.phpCdn_StackPath2_Page_View.jsCdn_StackPath2_Page_View.phpCdn_StackPath2_Popup.phpCdn_StackPath2_Popup_View_Intro.phpCdn_StackPath2_Popup_View_Sites.phpCdn_StackPath2_Popup_View_Stacks.phpCdn_StackPath2_Popup_View_Success.phpCdn_StackPath2_Widget.phpCdn_StackPath2_Widget_View.cssCdn_StackPath2_Widget_View.jsCdn_StackPath2_Widget_View_Authorized.phpCdn_StackPath2_Widget_View_Unauthorized.phpCdn_StackPath_Api.phpCdn_StackPath_Page.phpCdn_StackPath_Page_View.jsCdn_StackPath_Page_View.phpCdn_StackPath_Popup.phpCdn_StackPath_Popup_View_Intro.phpCdn_StackPath_Popup_View_Success.phpCdn_StackPath_Popup_View_Zone.phpCdn_StackPath_Popup_View_Zones.phpCdn_StackPath_Widget.phpCdn_StackPath_Widget_View.cssCdn_StackPath_Widget_View.jsCdn_StackPath_Widget_View_Authorized.phpCdn_StackPath_Widget_View_Unauthorized.phpCdn_Util.phpCdnfsd_CacheFlush.phpCdnfsd_CloudFront_Engine.phpCdnfsd_CloudFront_Page.phpCdnfsd_CloudFront_Page_View.jsCdnfsd_CloudFront_Page_View.phpCdnfsd_CloudFront_Popup.phpCdnfsd_CloudFront_Popup_View_Distribution.phpCdnfsd_CloudFront_Popup_View_Distributions.phpCdnfsd_CloudFront_Popup_View_Intro.phpCdnfsd_CloudFront_Popup_View_Success.phpCdnfsd_Core.phpCdnfsd_GeneralPage_View.phpCdnfsd_LimeLight_Api.phpCdnfsd_LimeLight_Engine.phpCdnfsd_LimeLight_Page.phpCdnfsd_LimeLight_Page_View.jsCdnfsd_LimeLight_Page_View.phpCdnfsd_LimeLight_Popup.phpCdnfsd_LimeLight_Popup_View_Intro.phpCdnfsd_LimeLight_Popup_View_Success.phpCdnfsd_Page_View_Header.phpCdnfsd_Plugin.phpCdnfsd_Plugin_Admin.phpCdnfsd_StackPath2_Engine.phpCdnfsd_StackPath2_Page.phpCdnfsd_StackPath2_Page_View.jsCdnfsd_StackPath2_Page_View.phpCdnfsd_StackPath2_Popup.phpCdnfsd_StackPath2_Popup_View_Intro.phpCdnfsd_StackPath2_Popup_View_Sites.phpCdnfsd_StackPath2_Popup_View_Stacks.phpCdnfsd_StackPath2_Popup_View_Success.phpCdnfsd_StackPath_Engine.phpCdnfsd_StackPath_Page.phpCdnfsd_StackPath_Page_View.jsCdnfsd_StackPath_Page_View.phpCdnfsd_StackPath_Popup.phpCdnfsd_StackPath_Popup_View_Intro.phpCdnfsd_StackPath_Popup_View_Success.phpCdnfsd_StackPath_Popup_View_Zone.phpCdnfsd_StackPath_Popup_View_Zones.phpCdnfsd_TransparentCDN_Engine.phpCdnfsd_TransparentCDN_Page.phpCdnfsd_TransparentCDN_Page_View.jsCdnfsd_TransparentCDN_Page_View.phpCdnfsd_Util.phpCli.phpConfig.phpConfigCache.phpConfigCompiler.phpConfigDbStorage.phpConfigKeys.phpConfigState.phpConfigStateNote.phpConfigUtil.phpDbCache_ConfigLabels.phpDbCache_Core.phpDbCache_Environment.phpDbCache_Page.phpDbCache_Plugin.phpDbCache_Plugin_Admin.phpDbCache_Wpdb.phpDbCache_WpdbBase.phpDbCache_WpdbInjection.phpDbCache_WpdbInjection_QueryCaching.phpDbCache_WpdbLegacy.phpDbCache_WpdbNew.phpDispatcher.phpEnterprise_CacheFlush_MakeSnsEvent.phpEnterprise_Dbcache_WpdbInjection_Cluster.phpEnterprise_SnsBase.phpEnterprise_SnsServer.phpExtension_Amp_Page_View.phpExtension_Amp_Plugin.phpExtension_Amp_Plugin_Admin.phpExtension_CloudFlare_AdminActions.phpExtension_CloudFlare_Api.phpExtension_CloudFlare_Cdn_Page_View.phpExtension_CloudFlare_GeneralPage_View.phpExtension_CloudFlare_Page.phpExtension_CloudFlare_Page_View.jsExtension_CloudFlare_Page_View.phpExtension_CloudFlare_Plugin.phpExtension_CloudFlare_Plugin_Admin.phpExtension_CloudFlare_Popup.phpExtension_CloudFlare_Popup_View_Intro.phpExtension_CloudFlare_Popup_View_Zones.phpExtension_CloudFlare_SettingsForUi.phpExtension_CloudFlare_View_Dashboard.jsExtension_CloudFlare_Widget.phpExtension_CloudFlare_Widget_Logo.pngExtension_CloudFlare_Widget_View.cssExtension_CloudFlare_Widget_View.phpExtension_FragmentCache_Api.phpExtension_FragmentCache_Core.phpExtension_FragmentCache_Environment.phpExtension_FragmentCache_GeneralPage.phpExtension_FragmentCache_GeneralPage_View.phpExtension_FragmentCache_Page.phpExtension_FragmentCache_Page_View.phpExtension_FragmentCache_Plugin.phpExtension_FragmentCache_Plugin_Admin.phpExtension_FragmentCache_WpObjectCache.phpExtension_Genesis_Page.phpExtension_Genesis_Page_View.phpExtension_Genesis_Plugin.phpExtension_Genesis_Plugin_Admin.phpExtension_ImageService_Api.phpExtension_ImageService_Cron.phpExtension_ImageService_Environment.phpExtension_ImageService_Page_View.phpExtension_ImageService_Plugin.phpExtension_ImageService_Plugin_Admin.cssExtension_ImageService_Plugin_Admin.jsExtension_ImageService_Plugin_Admin.phpExtension_NewRelic_AdminActions.phpExtension_NewRelic_AdminNotes.phpExtension_NewRelic_Api.phpExtension_NewRelic_Core.phpExtension_NewRelic_GeneralPage.phpExtension_NewRelic_GeneralPage_View.phpExtension_NewRelic_Page.phpExtension_NewRelic_Page_View_Apm.phpExtension_NewRelic_Plugin.phpExtension_NewRelic_Plugin_Admin.phpExtension_NewRelic_Popup.phpExtension_NewRelic_Popup_View.jsExtension_NewRelic_Popup_View_Intro.phpExtension_NewRelic_Popup_View_ListApplications.phpExtension_NewRelic_Service.phpExtension_NewRelic_Widget.phpExtension_NewRelic_Widget_View.cssExtension_NewRelic_Widget_View.jsExtension_NewRelic_Widget_View_Apm.phpExtension_NewRelic_Widget_View_Browser.phpExtension_NewRelic_Widget_View_NotConfigured.phpExtension_Swarmify_AdminActions.phpExtension_Swarmify_Core.phpExtension_Swarmify_Page.phpExtension_Swarmify_Page_View.phpExtension_Swarmify_Plugin.phpExtension_Swarmify_Plugin_Admin.phpExtension_Swarmify_Widget.phpExtension_Swarmify_Widget_View.cssExtension_Swarmify_Widget_View_NotConfigured.phpExtension_WordPressSeo_Plugin.phpExtension_WordPressSeo_Plugin_Admin.phpExtension_Wpml_Plugin.phpExtension_Wpml_Plugin_Admin.phpExtensions_AdminActions.phpExtensions_Page.phpExtensions_Plugin_Admin.phpExtensions_Util.phpFeatureShowcase_Plugin_Admin.phpFeatureShowcase_Plugin_Admin_View.phpGeneric_AdminActions_Config.phpGeneric_AdminActions_Default.phpGeneric_AdminActions_Flush.phpGeneric_AdminActions_Test.phpGeneric_AdminNotes.phpGeneric_ConfigLabels.phpGeneric_Environment.phpGeneric_Faq.phpGeneric_GeneralPage_View_ShowEdge.jsGeneric_GeneralPage_View_ShowSupportUs.jsGeneric_Page_About.phpGeneric_Page_Dashboard.phpGeneric_Page_Dashboard_View.cssGeneric_Page_General.phpGeneric_Page_Install.phpGeneric_Page_PurgeLog.phpGeneric_Page_PurgeLog_View.phpGeneric_Plugin.phpGeneric_Plugin_Admin.phpGeneric_Plugin_AdminCompatibility.phpGeneric_Plugin_AdminNotifications.phpGeneric_Plugin_AdminRowActions.phpGeneric_Plugin_Admin_View_Faq.phpGeneric_Plugin_WidgetForum.phpGeneric_Plugin_WidgetNews.phpGeneric_WidgetBoldGrid.phpGeneric_WidgetBoldGrid_AdminActions.phpGeneric_WidgetBoldGrid_Logo.svgGeneric_WidgetBoldGrid_View.jsGeneric_WidgetBoldGrid_View.phpGeneric_WidgetCommunity.phpGeneric_WidgetCommunity_View.phpGeneric_WidgetServices.phpGeneric_WidgetServices_View.phpGeneric_WidgetSpreadTheWord.jsGeneric_WidgetSpreadTheWord_Plugin.phpGeneric_WidgetSpreadTheWord_View.phpLICENSELicensing_AdminActions.phpLicensing_Core.phpLicensing_Plugin_Admin.phpMinify_AutoCss.phpMinify_AutoJs.phpMinify_ConfigLabels.phpMinify_ContentMinifier.phpMinify_Core.phpMinify_Environment.phpMinify_Environment_LiteSpeed.phpMinify_Extract.phpMinify_GeneralPage_View_ShowHelp.jsMinify_GeneralPage_View_ShowHelpForce.jsMinify_HelpPopup_View.phpMinify_MinifiedFileRequestHandler.phpMinify_Page.phpMinify_Plugin.phpMinify_Plugin_Admin.phpMobile_Base.phpMobile_Redirect.phpMobile_Referrer.phpMobile_UserAgent.phpModuleStatus.phpObjectCache_ConfigLabels.phpObjectCache_Environment.phpObjectCache_Page.phpObjectCache_Page_View_PurgeLog.phpObjectCache_Plugin.phpObjectCache_Plugin_Admin.phpObjectCache_WpObjectCache.phpObjectCache_WpObjectCache_Regular.phpPageSpeed_Api.phpPageSpeed_Data.phpPageSpeed_Instructions.phpPageSpeed_Page.phpPageSpeed_Page_View.cssPageSpeed_Page_View.jsPageSpeed_Page_View.phpPageSpeed_Page_View_FromAPI.phpPageSpeed_Widget.phpPageSpeed_Widget_View.cssPageSpeed_Widget_View.jsPageSpeed_Widget_View.phpPageSpeed_Widget_View_FromApi.phpPgCache_ConfigLabels.phpPgCache_ContentGrabber.phpPgCache_Environment.phpPgCache_Flush.phpPgCache_Page.phpPgCache_Page_View.jsPgCache_Plugin.phpPgCache_Plugin_Admin.phpPgCache_QsExempts.phpRoot_AdminActions.phpRoot_AdminActivation.phpRoot_AdminMenu.phpRoot_Environment.phpRoot_Loader.phpSetupGuide_Plugin_Admin.phpSupport_AdminActions.phpSupport_Page.phpSupport_Page_View_DoneContent.phpSupport_Page_View_PageContent.phpSystemOpCache_AdminActions.phpSystemOpCache_Core.phpSystemOpCache_GeneralPage_View.phpSystemOpCache_Plugin_Admin.phpUsageStatistics_AdminActions.phpUsageStatistics_Core.phpUsageStatistics_GeneralPage.phpUsageStatistics_GeneralPage_View.phpUsageStatistics_Page.phpUsageStatistics_Page_DbRequests_View.phpUsageStatistics_Page_ObjectCacheLog_View.phpUsageStatistics_Page_PageCacheRequests_View.phpUsageStatistics_Page_View.cssUsageStatistics_Page_View.jsUsageStatistics_Page_View.phpUsageStatistics_Page_View_Ad.phpUsageStatistics_Page_View_Disabled.phpUsageStatistics_Page_View_Free.phpUsageStatistics_Page_View_NoDebugMode.phpUsageStatistics_Plugin.phpUsageStatistics_Plugin_Admin.phpUsageStatistics_Source_AccessLog.phpUsageStatistics_Source_DbQueriesLog.phpUsageStatistics_Source_ObjectCacheLog.phpUsageStatistics_Source_PageCacheLog.phpUsageStatistics_Source_Wpdb.phpUsageStatistics_Sources.phpUsageStatistics_Sources_Apc.phpUsageStatistics_Sources_Memcached.phpUsageStatistics_Sources_Redis.phpUsageStatistics_StorageReader.phpUsageStatistics_StorageWriter.phpUsageStatistics_Widget.phpUsageStatistics_Widget_View.jsUsageStatistics_Widget_View.phpUsageStatistics_Widget_View_Disabled.phpUserExperience_Emoji_Extension.phpUserExperience_GeneralPage.phpUserExperience_GeneralPage_View.phpUserExperience_LazyLoad_GoogleMaps_GoogleMapsEasy.phpUserExperience_LazyLoad_GoogleMaps_WPGoogleMapPlugin.phpUserExperience_LazyLoad_GoogleMaps_WPGoogleMaps.phpUserExperience_LazyLoad_Mutator.phpUserExperience_LazyLoad_Mutator_Picture.phpUserExperience_LazyLoad_Mutator_Unmutable.phpUserExperience_LazyLoad_Page_View.phpUserExperience_LazyLoad_Plugin.phpUserExperience_OEmbed_Extension.phpUserExperience_Page.phpUserExperience_Page_View.phpUserExperience_Plugin_Admin.phpUserExperience_Plugin_Jquery.phpUtil_Activation.phpUtil_Admin.phpUtil_AttachToActions.phpUtil_Bus.phpUtil_ConfigLabel.phpUtil_Content.phpUtil_Debug.phpUtil_DebugPurgeLog_Reader.phpUtil_Environment.phpUtil_Environment_Exception.phpUtil_Environment_Exceptions.phpUtil_File.phpUtil_Http.phpUtil_Installed.phpUtil_Mime.phpUtil_PageSpeed.phpUtil_PageUrls.phpUtil_Request.phpUtil_Rule.phpUtil_Theme.phpUtil_Ui.phpUtil_UsageStatistics.phpUtil_Widget.phpUtil_WpFile.phpUtil_WpFile_FilesystemChmodException.phpUtil_WpFile_FilesystemCopyException.phpUtil_WpFile_FilesystemMkdirException.phpUtil_WpFile_FilesystemModifyException.phpUtil_WpFile_FilesystemOperationException.phpUtil_WpFile_FilesystemRmException.phpUtil_WpFile_FilesystemRmdirException.phpUtil_WpFile_FilesystemWriteException.phpUtil_WpmuBlogmap.phpVarnish_Flush.phpVarnish_Plugin.phppress.txtreadme.txt
extension-example
Extension_Example.phpExtension_Example_Admin.phpExtension_Example_Page_View.phpw3-total-cache-example.php
inc
define.php
index.htmlemail
error.phpindex.htmllightbox
mime
options
about.phpbrowsercache.phpcdn.php
cdn
akamai.phpatt.phpazure.phpcf.phpcf2.php
common
cotendo.phpedgecast.phpftp.phpindex.htmlmirror.phprscf.phps3.phps3_compatible.phpcommon
dashboard.phpdbcache.phpedd
enterprise
extensions.phpextensions
general.phpindex.htmlinstall.phpminify.phpminify
ccjs.phpccjs2.phpcss.phpcsstidy.phpcsstidy2.phpgoogleccjs2.phphtml.phphtmltidy.phphtmltidy2.phpindex.htmljs.phpyuicss2.phpyuijs.phpyuijs2.php
objectcache.phpparts
pgcache.phpsupport.phppopup
cdn_export_file.phpcdn_export_library.phpcdn_import_library.phpcdn_purge.phpcdn_queue.phpcdn_rename_domain.php
common
index.htmlwidget
index.htmllatest.phplatest_ajax.phplatest_control.phplatest_news.phplatest_news_ajax.phplatest_news_control.php
wizard
ini
apache_conf
apc.iniconfig-db-sample.phpdbcluster-config-sample.phpeaccelerator.iniindex.htmlmemcache.ininginx-network-sample-config.confnginx-standalone-sample-config.confopcache.iniphp.append.inis3-sample-policy.txtvarnish-sample-config.vclweb.configxcache.inilanguages
lib
Azure
GuzzleHttp
Client.phpClientInterface.php
Cookie
Exception
BadResponseException.phpClientException.phpConnectException.phpGuzzleException.phpRequestException.phpSeekException.phpServerException.phpTooManyRedirectsException.phpTransferException.php
Handler
CurlFactory.phpCurlFactoryInterface.phpCurlHandler.phpCurlMultiHandler.phpEasyHandle.phpMockHandler.phpProxy.phpStreamHandler.php
HandlerStack.phpMessageFormatter.phpMiddleware.phpPool.phpPrepareBodyMiddleware.phpPromise
AggregateException.phpCancellationException.phpCoroutine.phpEachPromise.phpFulfilledPromise.phpPromise.phpPromiseInterface.phpPromisorInterface.phpRejectedPromise.phpRejectionException.phpTaskQueue.phpTaskQueueInterface.phpfunctions.phpfunctions_include.php
Psr7
AppendStream.phpBufferStream.phpCachingStream.phpDroppingStream.phpFnStream.phpInflateStream.phpLazyOpenStream.phpLimitStream.phpMessageTrait.phpMultipartStream.phpNoSeekStream.phpPumpStream.phpRequest.phpResponse.phpServerRequest.phpStream.phpStreamDecoratorTrait.phpStreamWrapper.phpUploadedFile.phpUri.phpfunctions.phpfunctions_include.php
RedirectMiddleware.phpRequestOptions.phpRetryMiddleware.phpTransferStats.phpUriTemplate.phpfunctions.phpfunctions_include.phpMicrosoftAzureStorage
Blob
BlobRestProxy.php
Internal
Models
AccessCondition.phpAccessPolicy.phpAcquireLeaseOptions.phpAcquireLeaseResult.phpBlob.phpBlobBlockType.phpBlobPrefix.phpBlobProperties.phpBlobServiceOptions.phpBlobType.phpBlock.phpBlockList.phpBreakLeaseResult.phpCommitBlobBlocksOptions.phpContainer.phpContainerACL.phpContainerProperties.phpCopyBlobOptions.phpCopyBlobResult.phpCreateBlobBlockOptions.phpCreateBlobOptions.phpCreateBlobPagesOptions.phpCreateBlobPagesResult.phpCreateBlobSnapshotOptions.phpCreateBlobSnapshotResult.phpCreateContainerOptions.phpDeleteBlobOptions.phpDeleteContainerOptions.phpGetBlobMetadataOptions.phpGetBlobMetadataResult.phpGetBlobOptions.phpGetBlobPropertiesOptions.phpGetBlobPropertiesResult.phpGetBlobResult.phpGetContainerACLResult.phpGetContainerPropertiesResult.phpLeaseMode.phpListBlobBlocksOptions.phpListBlobBlocksResult.phpListBlobsOptions.phpListBlobsResult.phpListContainersOptions.phpListContainersResult.phpListPageBlobRangesOptions.phpListPageBlobRangesResult.phpPageRange.phpPageWriteOption.phpPublicAccessType.phpSetBlobMetadataOptions.phpSetBlobMetadataResult.phpSetBlobPropertiesOptions.phpSetBlobPropertiesResult.phpSetContainerMetadataOptions.phpSignedIdentifier.php
Common
CloudConfigurationManager.php
Internal
Authentication
ConnectionStringParser.phpConnectionStringSource.phpFilterableService.phpFilters
AuthenticationFilter.phpDateFilter.phpExponentialRetryPolicy.phpHeadersFilter.phpRetryPolicy.phpRetryPolicyFilter.php
Http
HttpFormatter.phpIServiceFilter.phpInvalidArgumentTypeException.phpLogger.phpResources.phpRestProxy.phpRetryMiddlewareFactory.phpSerialization
ServiceRestProxy.phpServiceSettings.phpStorageServiceSettings.phpUtilities.phpValidate.phpModels
ServiceException.phpServicesBuilder.phpPsrHttpMessage
MessageInterface.phpRequestInterface.phpResponseInterface.phpServerRequestInterface.phpStreamInterface.phpUploadedFileInterface.phpUriInterface.php
loader.phpCSSTidy
Db
Google
Auth
Cache
Client.phpCollection.phpConfig.phpException.phpHttp
IO
Model.phpService.phpService
Signer
Utils.phpUtils
Verifier
Minify
HTTP
JSMin.phpJSMinPlus.phpMinify.phpMinify
Build.phpCSS.php
index.htmlCSS
CSSTidy.phpCache
ClosureCompiler.phpCombineOnly.phpCommentPreserver.phpController
DebugDetector.phpHTML.phpHTML
HTMLTidy.phpIgnoredCommentPreserver.phpImportProcessor.phpInline.phpInline
JS
Lines.phpLogger.phpPacker.phpSource.phpYUI
YUICompressor.phpindex.htmlNetDNA
NewRelic
Nusoap
class.nusoap_base.phpclass.soap_fault.phpclass.soap_parser.phpclass.soap_transport_http.phpclass.soap_val.phpclass.soapclient.phpclass.wsdl.phpclass.wsdlcache.phpclass.xmlschema.phpindex.htmlnusoap.php
OAuth
S3Compatible.phpSNS
YuiCssMin
index.htmlpub
css
error.cssfeature-counter.cssfeature-showcase.cssindex.htmllightbox.cssoptions.csspopup.csssetup-guide.csswidget.csswizard.css
fonts
img
W3TC_dashboard_logo_title-retina.pngW3TC_dashboard_logo_title.pngbutton-grad-active.pngbutton-grad.pngcdn-highwinds-logo.pngclose.pnggoogle-logo.pngindex.htmlmoon-bottom-left.pngmoon-bottom-right.pngopen.png
index.htmloverlay
ceo.pnggauge-bg-tp.pnggray-check.pnglite-gray-check.pnglock.pngoverlay-close.pngoverlay-down-arrow.pngoverlay-logo.pngsave-close.pngselect-arrow.pngtwitter-bird-dark-bgs.pngwordpress-logo-simplified-rgb.png
ps_bar.gifps_grad.gifps_scores.pngsidebar-background.pngstats-bg.pngtransparent-comet-moon.pngtransparent-comet.pngusage-statistics-widget.pngw3tc_cube-shadow.pngw3tc_google-logo-retina.pngw3tc_google-logo.pngw3tc_netdna-logo-retina.pngw3tc_netdna-logo.pngw3tc_newrelic-logo-retina.pngw3tc_newrelic-logo.pngw3tc_stackpath_logo.svgw3tc_swarmify-logo-retina.pngw3tc_swarmify-logo.pngw3tc_w3edge-logo-retina.pngw3tc_w3edge-logo.pngw3tc_w3tc-logo-retina.pngw3tc_w3tc-logo.pngwhite-grad-active.pngwhite-grad.pngwpspin_light.gifjs
chartjs.min.jsfeature-counter.jsindex.htmljquery.masonry.min.jslazyload.min.jslazyload.version.txtlightbox.jsmetadata.jsoptions-validator.jsoptions.jspopup.jssetup-guide.jswidget.jswizard.js
sns.phpvendor
autoload.php
w3-total-cache-api.phpw3-total-cache-old-php.phpw3-total-cache.phpaws
aws-php-sns-message-validator
.github
.travis.ymlCODE_OF_CONDUCT.mdCONTRIBUTING.mdLICENSE.mdNOTICE.mdREADME.mdcomposer.jsonphpunit.xml.distsrc
tests
aws-sdk-php
CODE_OF_CONDUCT.mdLICENSE.mdNOTICE.mdcomposer.jsonaliases.json.phpendpoints.json.phpendpoints_prefix_history.json.phpmanifest.json.php
src
ACMPCA
AbstractConfigurationProvider.phpAccessAnalyzer
Acm
AlexaForBusiness
Amplify
AmplifyBackend
Api
AbstractModel.phpApiProvider.phpDateTimeResult.phpDocModel.php
ErrorParser
AbstractErrorParser.phpJsonParserTrait.phpJsonRpcErrorParser.phpRestJsonErrorParser.phpXmlErrorParser.php
ListShape.phpMapShape.phpOperation.phpParser
AbstractParser.phpAbstractRestParser.phpCrc32ValidatingParser.phpDecodingEventStreamIterator.phpEventParsingIterator.php
Exception
JsonParser.phpJsonRpcParser.phpMetadataParserTrait.phpPayloadParserTrait.phpQueryParser.phpRestJsonParser.phpRestXmlParser.phpXmlParser.phpSerializer
Ec2ParamBuilder.phpJsonBody.phpJsonRpcSerializer.phpQueryParamBuilder.phpQuerySerializer.phpRestJsonSerializer.phpRestSerializer.phpRestXmlSerializer.phpXmlBody.php
Service.phpShape.phpShapeMap.phpStructureShape.phpTimestampShape.phpValidator.phpApiGateway
ApiGatewayManagementApi
ApiGatewayV2
AppConfig
AppIntegrationsService
AppMesh
AppRegistry
AppRunner
AppSync
Appflow
ApplicationAutoScaling
ApplicationCostProfiler
ApplicationDiscoveryService
ApplicationInsights
Appstream
Arn
AccessPointArn.phpAccessPointArnInterface.phpArn.phpArnInterface.phpArnParser.php
Exception
ObjectLambdaAccessPointArn.phpResourceTypeAndIdTrait.phpS3
Athena
AuditManager
AugmentedAIRuntime
AutoScaling
AutoScalingPlans
AwsClient.phpAwsClientInterface.phpAwsClientTrait.phpBackup
Batch
Braket
Budgets
CacheInterface.phpChime
ClientResolver.phpClientSideMonitoring
AbstractMonitoringMiddleware.phpApiCallAttemptMonitoringMiddleware.phpApiCallMonitoringMiddleware.phpConfiguration.phpConfigurationInterface.phpConfigurationProvider.php
Exception
MonitoringMiddlewareInterface.phpCloud9
CloudDirectory
CloudFormation
CloudFront
CloudHSMV2
CloudHsm
CloudSearch
CloudSearchDomain
CloudTrail
CloudWatch
CloudWatchEvents
CloudWatchLogs
CodeArtifact
CodeBuild
CodeCommit
CodeDeploy
CodeGuruProfiler
CodeGuruReviewer
CodePipeline
CodeStar
CodeStarNotifications
CodeStarconnections
CognitoIdentity
CognitoIdentityProvider
CognitoSync
Command.phpCommandInterface.phpCommandPool.phpComprehend
ComprehendMedical
ComputeOptimizer
ConfigService
ConfigurationProviderInterface.phpConnect
ConnectContactLens
ConnectParticipant
CostExplorer
CostandUsageReportService
Credentials
AssumeRoleCredentialProvider.phpAssumeRoleWithWebIdentityCredentialProvider.phpCredentialProvider.phpCredentials.phpCredentialsInterface.phpEcsCredentialProvider.phpInstanceProfileProvider.php
Crypto
AbstractCryptoClient.phpAbstractCryptoClientV2.phpAesDecryptingStream.phpAesEncryptingStream.phpAesGcmDecryptingStream.phpAesGcmEncryptingStream.phpAesStreamInterface.phpAesStreamInterfaceV2.php
Cipher
DecryptionTrait.phpDecryptionTraitV2.phpEncryptionTrait.phpEncryptionTraitV2.phpKmsMaterialsProvider.phpKmsMaterialsProviderV2.phpMaterialsProvider.phpMaterialsProviderInterface.phpMaterialsProviderInterfaceV2.phpMaterialsProviderV2.phpMetadataEnvelope.phpMetadataStrategyInterface.phpPolyfill
CustomerProfiles
DAX
DLM
DataExchange
DataPipeline
DataSync
DatabaseMigrationService
Detective
DevOpsGuru
DeviceFarm
DirectConnect
DirectoryService
DocDB
DoctrineCacheAdapter.phpDynamoDb
BinaryValue.phpDynamoDbClient.php
Exception
LockingSessionConnection.phpMarshaler.phpNumberValue.phpSessionConnectionConfigTrait.phpSessionConnectionInterface.phpSessionHandler.phpSetValue.phpStandardSessionConnection.phpWriteRequestBatch.phpDynamoDbStreams
EBS
EC2InstanceConnect
ECRPublic
EKS
EMRContainers
Ec2
Ecr
Ecs
Efs
ElastiCache
ElasticBeanstalk
ElasticInference
ElasticLoadBalancing
ElasticLoadBalancingV2
ElasticTranscoder
ElasticsearchService
Emr
Endpoint
EndpointProvider.phpPartition.phpPartitionEndpointProvider.phpPartitionInterface.phpPatternEndpointProvider.php
EndpointDiscovery
Configuration.phpConfigurationInterface.phpConfigurationProvider.phpEndpointDiscoveryMiddleware.phpEndpointList.php
EndpointParameterMiddleware.phpException
EventBridge
Exception
AwsException.phpCouldNotCreateChecksumException.phpCredentialsException.phpCryptoException.phpCryptoPolyfillException.phpEventStreamDataException.phpIncalculablePayloadException.phpInvalidJsonException.phpInvalidRegionException.phpMultipartUploadException.phpUnresolvedApiException.phpUnresolvedEndpointException.phpUnresolvedSignatureException.php
FIS
FMS
FSx
FinSpaceData
Firehose
ForecastQueryService
ForecastService
FraudDetector
GameLift
Glacier
GlobalAccelerator
Glue
GlueDataBrew
Greengrass
GreengrassV2
GroundStation
GuardDuty
Handler
HandlerList.phpHasDataTrait.phpHasMonitoringEventsTrait.phpHashInterface.phpHashingStream.phpHealth
HealthLake
History.phpHoneycode
IVS
Iam
IdempotencyTokenMiddleware.phpIdentityStore
ImportExport
InputValidationMiddleware.phpInspector
IoT1ClickDevicesService
IoT1ClickProjects
IoTAnalytics
IoTDeviceAdvisor
IoTEvents
IoTEventsData
IoTFleetHub
IoTJobsDataPlane
IoTSecureTunneling
IoTSiteWise
IoTThingsGraph
IoTWireless
Iot
IotDataPlane
JsonCompiler.phpKafka
Kinesis
KinesisAnalytics
KinesisAnalyticsV2
KinesisVideo
KinesisVideoArchivedMedia
KinesisVideoMedia
KinesisVideoSignalingChannels
Kms
LakeFormation
Lambda
LexModelBuildingService
LexModelsV2
LexRuntimeService
LexRuntimeV2
LicenseManager
Lightsail
LocationService
LookoutEquipment
LookoutMetrics
LookoutforVision
LruArrayCache.phpMQ
MTurk
MWAA
MachineLearning
Macie
Macie2
ManagedBlockchain
MarketplaceCatalog
MarketplaceCommerceAnalytics
MarketplaceEntitlementService
MarketplaceMetering
MediaConnect
MediaConvert
MediaLive
MediaPackage
MediaPackageVod
MediaStore
MediaStoreData
MediaTailor
Middleware.phpMigrationHub
MigrationHubConfig
Mobile
MockHandler.phpMonitoringEventsInterface.phpMultiRegionClient.phpMultipart
Neptune
NetworkFirewall
NetworkManager
NimbleStudio
OpsWorks
OpsWorksCM
Organizations
Outposts
PI
Personalize
PersonalizeEvents
PersonalizeRuntime
PhpHash.phpPinpoint
PinpointEmail
PinpointSMSVoice
Polly
PresignUrlMiddleware.phpPricing
PrometheusService
Psr16CacheAdapter.phpPsrCacheAdapter.phpQLDB
QLDBSession
QuickSight
RAM
RDSDataService
Rds
Redshift
RedshiftDataAPIService
Rekognition
ResourceGroups
ResourceGroupsTaggingAPI
ResponseContainerInterface.phpResult.phpResultInterface.phpResultPaginator.phpRetry
Configuration.phpConfigurationInterface.phpConfigurationProvider.php
RetryMiddleware.phpRetryMiddlewareV2.phpException
QuotaManager.phpRateLimiter.phpRetryHelperTrait.phpRoboMaker
Route53
Route53Domains
Route53Resolver
S3
AmbiguousSuccessParser.phpApplyChecksumMiddleware.phpBatchDelete.phpBucketEndpointArnMiddleware.phpBucketEndpointMiddleware.php
Crypto
CryptoParamsTrait.phpCryptoParamsTraitV2.phpHeadersMetadataStrategy.phpInstructionFileMetadataStrategy.phpS3EncryptionClient.phpS3EncryptionClientV2.phpS3EncryptionMultipartUploader.phpS3EncryptionMultipartUploaderV2.phpUserAgentTrait.php
EndpointRegionHelperTrait.phpException
DeleteMultipleObjectsException.phpPermanentRedirectException.phpS3Exception.phpS3MultipartUploadException.php
GetBucketLocationParser.phpMultipartCopy.phpMultipartUploader.phpMultipartUploadingTrait.phpObjectCopier.phpObjectUploader.phpPermanentRedirectMiddleware.phpPostObject.phpPostObjectV4.phpPutObjectUrlMiddleware.phpRegionalEndpoint
RetryableMalformedResponseParser.phpS3Client.phpS3ClientInterface.phpS3ClientTrait.phpS3EndpointMiddleware.phpS3MultiRegionClient.phpS3UriParser.phpSSECMiddleware.phpStreamWrapper.phpTransfer.phpUseArnRegion
S3Control
S3Outposts
SSMContacts
SSMIncidents
SSO
SSOAdmin
SSOOIDC
SageMaker
SageMakerFeatureStoreRuntime
SageMakerRuntime
SagemakerEdgeManager
SavingsPlans
Schemas
Sdk.phpSecretsManager
SecurityHub
ServerlessApplicationRepository
ServiceCatalog
ServiceDiscovery
ServiceQuotas
Ses
SesV2
Sfn
Shield
Signature
AnonymousSignature.phpS3SignatureV4.phpSignatureInterface.phpSignatureProvider.phpSignatureTrait.phpSignatureV4.php
Sms
SnowBall
Sns
Sqs
Ssm
StorageGateway
StreamRequestPayloadMiddleware.phpSts
Exception
RegionalEndpoints
StsClient.phpSupport
Swf
Synthetics
Textract
TimestreamQuery
TimestreamWrite
TraceMiddleware.phpTranscribeService
Transfer
Translate
WAFV2
Waf
WafRegional
Waiter.phpWellArchitected
WorkDocs
WorkLink
WorkMail
WorkMailMessageFlow
WorkSpaces
WrappedHttpHandler.phpXRay
data
accessanalyzer
2019-11-01
acm-pca
acm
alexaforbusiness
2017-11-09
amp
2020-08-01
amplify
2017-07-25
amplifybackend
2020-08-11
apigateway
apigatewaymanagementapi
2018-11-29
apigatewayv2
2018-11-29
appconfig
2019-10-09
appflow
2020-08-23
appintegrations
2020-07-29
application-autoscaling
application-insights
2018-11-25
applicationcostprofiler
2020-09-10
appmesh
apprunner
2020-05-15
appstream
appsync
2017-07-25
athena
auditmanager
2017-07-25
autoscaling-plans
2018-01-06
autoscaling
backup
2018-11-15
batch
braket
2019-09-01
budgets
2016-10-20
ce
2017-10-25
chime
2018-05-01
cloud9
2017-09-23
clouddirectory
cloudformation
cloudfront
2015-07-27
2016-01-28
2016-08-01
2016-08-20
2016-09-07
2016-09-29
2016-11-25
2017-03-25
2017-10-30
2018-06-18
2018-11-05
2019-03-26
2020-05-31
cloudhsm
2014-05-30
cloudhsmv2
cloudsearch
cloudsearchdomain
2013-01-01
cloudtrail
codeartifact
2018-09-22
codebuild
codecommit
codedeploy
codeguru-reviewer
2019-09-19
codeguruprofiler
2019-07-18
codepipeline
codestar-connections
2019-12-01
codestar-notifications
2019-10-15
codestar
cognito-identity
cognito-idp
cognito-sync
comprehend
2017-11-27
comprehendmedical
2018-10-30
compute-optimizer
2019-11-01
config
connect-contact-lens
2020-08-21
connect
2017-08-08
connectparticipant
2018-09-07
cur
customer-profiles
2020-08-15
data.iot
databrew
2017-07-25
dataexchange
2017-07-25
datapipeline
2012-10-29
datasync
2018-11-09
dax
2017-04-19
detective
2018-10-26
devicefarm
devops-guru
2020-12-01
directconnect
discovery
dlm
2018-01-12
dms
docdb
ds
dynamodb
2011-12-05
2012-08-10
ebs
2019-11-02
ec2-instance-connect
2018-04-02
ec2
2015-10-01
2016-04-01
2016-09-15
2016-11-15
ecr-public
2020-10-30
ecr
ecs
eks
elastic-inference
2017-07-25
elasticache
elasticbeanstalk
elasticfilesystem
elasticloadbalancing
elasticloadbalancingv2
elasticmapreduce
elastictranscoder
email
emr-containers
2020-10-01
entitlement.marketplace
2017-01-11
es
eventbridge
events
finspace-data
2020-07-13
finspace
2021-03-12
firehose
fis
2020-12-01
fms
2018-01-01
forecast
2018-06-26
forecastquery
2018-06-26
frauddetector
2019-11-15
fsx
2018-03-01
gamelift
glacier
globalaccelerator
2018-08-08
glue
greengrass
2017-06-07
greengrassv2
2020-11-30
groundstation
2019-05-23
guardduty
2017-11-28
health
2016-08-04
healthlake
2017-07-01
honeycode
2020-03-01
iam
identitystore
2020-06-15
imagebuilder
2019-12-02
importexport
2010-06-01
inspector
iot-jobs-data
2017-09-29
iot
iot1click-devices
2018-05-14
iot1click-projects
2018-05-14
iotanalytics
2017-11-27
iotdeviceadvisor
2020-09-18
iotevents-data
2018-10-23
iotevents
2018-07-27
iotfleethub
2020-11-03
iotsecuretunneling
2018-10-05
iotsitewise
iotthingsgraph
2018-09-06
iotwireless
2020-11-22
ivs
2020-07-14
kafka
2018-11-14
kendra
2019-02-03
kinesis-video-archived-media
2017-09-30
kinesis-video-media
2017-09-30
kinesis-video-signaling
2019-12-04
kinesis
kinesisanalytics
2015-08-14
kinesisanalyticsv2
2018-05-23
kinesisvideo
2017-09-30
kms
lakeformation
2017-03-31
lambda
lex-models
2017-04-19
license-manager
2018-08-01
lightsail
location
2020-11-19
logs
lookoutequipment
2020-12-15
lookoutmetrics
2017-07-25
lookoutvision
2020-11-20
machinelearning
macie
2017-12-19
macie2
2020-01-01
managedblockchain
2018-09-24
marketplace-catalog
2018-09-17
marketplacecommerceanalytics
mediaconnect
mediaconvert
2017-08-29
medialive
mediapackage-vod
2018-11-07
mediapackage
2017-10-12
mediastore-data
2017-09-01
mediastore
2017-09-01
mediatailor
2018-04-23
metering.marketplace
2016-01-14
mgh
2017-05-31
mgn
2020-02-26
migrationhub-config
2019-06-30
mobile
2017-07-01
models.lex.v2
2020-08-07
monitoring
mq
2017-11-27
mturk-requester
mwaa
2020-07-01
neptune
network-firewall
2020-11-12
networkmanager
2019-07-05
nimble
2020-08-01
opsworks
opsworkscm
organizations
2016-11-28
outposts
2019-12-03
personalize-events
2018-03-22
personalize-runtime
2018-05-22
personalize
2018-05-22
pi
2018-02-27
pinpoint-email
2018-07-26
pinpoint
2016-12-01
polly
pricing
2017-10-15
qldb-session
2019-07-11
qldb
2019-01-02
quicksight
2018-04-01
ram
2018-01-04
rds-data
2018-08-01
rds
2014-09-01
2014-10-31
redshift-data
2019-12-20
redshift
rekognition
resource-groups
2017-11-27
resourcegroupstaggingapi
2017-01-26
robomaker
2018-06-29
route53
route53domains
route53resolver
runtime.lex.v2
2020-08-07
runtime.lex
2016-11-28
runtime.sagemaker
2017-05-13
s3
s3control
2018-08-20
s3outposts
2017-07-25
sagemaker-a2i-runtime
2019-11-07
sagemaker-edge
2020-09-23
sagemaker-featurestore-runtime
2020-07-01
sagemaker
savingsplans
2019-06-28
schemas
secretsmanager
securityhub
2018-10-26
serverlessrepo
2017-09-08
service-quotas
2019-06-24
servicecatalog-appregistry
2020-06-24
servicecatalog
servicediscovery
2017-03-14
sesv2
2019-09-27
shield
signer
sms-voice
2018-09-05
sms
snowball
sns
sqs
ssm-contacts
2021-05-03
ssm-incidents
ssm
sso-admin
2020-07-20
sso-oidc
2019-06-10
sso
2019-06-10
states
storagegateway
2013-06-30
streams.dynamodb
2012-08-10
sts
support
swf
2012-01-25
synthetics
2017-10-11
textract
2018-06-27
timestream-query
2018-11-01
timestream-write
2018-11-01
transcribe
2017-10-26
transfer
2018-11-05
translate
2017-07-01
waf-regional
waf
wafv2
wellarchitected
2020-03-31
workdocs
2016-05-01
worklink
2018-09-25
workmail
2017-10-01
workmailmessageflow
2019-05-01
workspaces
xray
2016-04-12
finspace
functions.phpimagebuilder
kendra
mgn
signer
bin
composer
ClassLoader.phpLICENSEautoload_classmap.phpautoload_files.phpautoload_namespaces.phpautoload_psr4.phpautoload_real.phpautoload_static.phpinstalled.json
guzzlehttp
guzzle
.editorconfig.gitattributes
.github
.php_csCHANGELOG.mdDockerfileLICENSEMakefileREADME.mdUPGRADING.mdbuild
composer.jsondocs
Makefile
phpstan-baseline.neonphpstan.neon.distphpunit.xml.dist_static
conf.pyfaq.rsthandlers-and-middleware.rstindex.rstoverview.rstpsr7.rstquickstart.rstrequest-options.rstrequirements.txttesting.rstsrc
Client.phpClientInterface.php
Cookie
Exception
BadResponseException.phpClientException.phpConnectException.phpGuzzleException.phpInvalidArgumentException.phpRequestException.phpSeekException.phpServerException.phpTooManyRedirectsException.phpTransferException.php
Handler
CurlFactory.phpCurlFactoryInterface.phpCurlHandler.phpCurlMultiHandler.phpEasyHandle.phpMockHandler.phpProxy.phpStreamHandler.php
HandlerStack.phpMessageFormatter.phpMiddleware.phpPool.phpPrepareBodyMiddleware.phpRedirectMiddleware.phpRequestOptions.phpRetryMiddleware.phpTransferStats.phpUriTemplate.phpUtils.phpfunctions.phpfunctions_include.phptests
ClientTest.php
Cookie
Exception
Handler
CurlFactoryTest.phpCurlHandlerTest.phpCurlMultiHandlerTest.phpEasyHandleTest.phpMockHandlerTest.phpProxyTest.phpStreamHandlerTest.php
HandlerStackTest.phpInternalUtilsTest.phpMessageFormatterTest.phpMiddlewareTest.phpPoolTest.phpPrepareBodyMiddlewareTest.phpRedirectMiddlewareTest.phpRetryMiddlewareTest.phpServer.phpTransferStatsTest.phpUriTemplateTest.phpbootstrap.phpfunctionsTest.phpserver.jspromises
psr7
.editorconfig.gitattributes
.github
.php_cs.dist.travis.ymlCHANGELOG.mdLICENSEMakefileREADME.mdcomposer.jsonphpunit.xml.distsrc
AppendStream.phpBufferStream.phpCachingStream.phpDroppingStream.phpFnStream.phpHeader.phpInflateStream.phpLazyOpenStream.phpLimitStream.phpMessage.phpMessageTrait.phpMimeType.phpMultipartStream.phpNoSeekStream.phpPumpStream.phpQuery.phpRequest.phpResponse.phpRfc7230.phpServerRequest.phpStream.phpStreamDecoratorTrait.phpStreamWrapper.phpUploadedFile.phpUri.phpUriComparator.phpUriNormalizer.phpUriResolver.phpUtils.phpfunctions.phpfunctions_include.php
tests
AppendStreamTest.phpBaseTest.phpBufferStreamTest.phpCachingStreamTest.phpDroppingStreamTest.phpFnStreamTest.phpHasToString.phpHeaderTest.phpHelpers.phpInflateStreamTest.php
Integration
LazyOpenStreamTest.phpLimitStreamTest.phpMessageTest.phpMimeTypeTest.phpMultipartStreamTest.phpNoSeekStreamTest.phpPumpStreamTest.phpQueryTest.phpReadSeekOnlyStream.phpRequestTest.phpResponseTest.phpServerRequestTest.phpStreamDecoratorTraitTest.phpStreamTest.phpStreamWrapperTest.phpUploadedFileTest.phpUriComparatorTest.phpUriNormalizerTest.phpUriResolverTest.phpUriTest.phpUtilsTest.phpmtdowling
jmespath.php
psr
http-message
ralouphie
getallheaders
symfony
polyfill-intl-idn
polyfill-intl-normalizer
wp-content
wp-piwik
LICENSEREADME.mdbitcoin.png
classes
WP_Piwik.php
config.phpWP_Piwik
Admin.php
Admin
Logger.phpLogger
Request.phpRequest
Settings.phpShortcode.phpTemplate.phpTemplate
TrackingCode.phpWidget.phpWidget
css
gpl-3.0.htmlindex.phpjs
languages
.tx
update.shwp-piwik-az_AZ.mowp-piwik-az_AZ.powp-piwik-be_BY.mowp-piwik-be_BY.powp-piwik-cs_CZ.mowp-piwik-cs_CZ.powp-piwik-de_CH.mowp-piwik-de_CH.powp-piwik-de_DE.mowp-piwik-de_DE.powp-piwik-el.mowp-piwik-el.powp-piwik-el_GR.mowp-piwik-el_GR.powp-piwik-es_ES.mowp-piwik-es_ES.powp-piwik-fa_IR.mowp-piwik-fa_IR.powp-piwik-fr_FR.mowp-piwik-fr_FR.powp-piwik-hi.mowp-piwik-hi.powp-piwik-hu_HU.mowp-piwik-hu_HU.powp-piwik-id.mowp-piwik-id.powp-piwik-it_IT.mowp-piwik-it_IT.powp-piwik-lb.mowp-piwik-lb.powp-piwik-lt_LT.mowp-piwik-lt_LT.powp-piwik-nb_NO.mowp-piwik-nb_NO.powp-piwik-nl_NL.mowp-piwik-nl_NL.powp-piwik-pl_PL.mowp-piwik-pl_PL.powp-piwik-pt_BR.mowp-piwik-pt_BR.powp-piwik-ro_RO.mowp-piwik-ro_RO.powp-piwik-ru_RU.mowp-piwik-ru_RU.powp-piwik-sl_SI.mowp-piwik-sl_SI.powp-piwik-sq.mowp-piwik-sq.powp-piwik-sv_SE.mowp-piwik-sv_SE.powp-piwik-tr_TR.mowp-piwik-tr_TR.powp-piwik-ua_UA.mowp-piwik-ua_UA.powp-piwik-uk_UA.mowp-piwik-uk_UA.powp-piwik-zh_CN.mowp-piwik-zh_CN.powp-piwik.potproxy
readme.txtscreenshot-1.gifscreenshot-2.gifscreenshot-3.gifscreenshot-4.gifscreenshot-5.gifuninstall.phpupdate
wp-piwik.phpwpml-config.xmlwp-webauthn
LICENSE
blocks
blocks.build.js
languages
css
js
languages
readme.txtvendor
autoload.phpCHANGELOG.mdLICENSEREADME.mdcomposer.json
wp-webauthn.phpwwa-admin-content.phpwwa-ajax.phpwwa-compatibility.phpwwa-functions.phpwwa-menus.phpwwa-profile-content.phpwwa-shortcodes.phpwwa-version.phpbeberlei
assert
brick
math
composer
ClassLoader.phpInstalledVersions.phpLICENSEautoload_classmap.phpautoload_files.phpautoload_namespaces.phpautoload_psr4.phpautoload_real.phpautoload_static.phpinstalled.jsoninstalled.php
fgrosse
phpasn1
.github
workflows
lib
ASN1
ASNObject.phpAbstractString.phpAbstractTime.phpBase128.php
Composite
Construct.phpException
ExplicitlyTaggedObject.phpIdentifier.phpOID.phpParsable.phpTemplateParser.phpUniversal
BMPString.phpBitString.phpBoolean.phpCharacterString.phpEnumerated.phpGeneralString.phpGeneralizedTime.phpGraphicString.phpIA5String.phpInteger.phpNullObject.phpNumericString.phpObjectDescriptor.phpObjectIdentifier.phpOctetString.phpPrintableString.phpRelativeObjectIdentifier.phpSequence.phpSet.phpT61String.phpUTCTime.phpUTF8String.phpUniversalString.phpVisibleString.php
UnknownConstructedObject.phpUnknownObject.phpUtility
X509
league
uri-interfaces
LICENSEcomposer.json
src
Contracts
AuthorityInterface.phpDataPathInterface.phpDomainHostInterface.phpFragmentInterface.phpHostInterface.phpIpHostInterface.phpPathInterface.phpPortInterface.phpQueryInterface.phpSegmentedPathInterface.phpUriComponentInterface.phpUriException.phpUriInterface.phpUserInfoInterface.php
Exceptions
Idna
uri
nyholm
php-http
message-factory
psr
http-client
http-factory
http-message
log
ramsey
collection
LICENSEREADME.mdSECURITY.mdcomposer.json
src
AbstractArray.phpAbstractCollection.phpAbstractSet.phpArrayInterface.phpCollection.phpCollectionInterface.phpDoubleEndedQueue.phpDoubleEndedQueueInterface.php
Exception
CollectionMismatchException.phpInvalidArgumentException.phpInvalidSortOrderException.phpNoSuchElementException.phpOutOfBoundsException.phpUnsupportedOperationException.phpValueExtractionException.php
GenericArray.phpMap
AbstractMap.phpAbstractTypedMap.phpAssociativeArrayMap.phpMapInterface.phpNamedParameterMap.phpTypedMap.phpTypedMapInterface.php
Queue.phpQueueInterface.phpSet.phpTool
uuid
LICENSEREADME.mdcomposer.json
src
BinaryUtils.php
Builder
BuilderCollection.phpDefaultUuidBuilder.phpDegradedUuidBuilder.phpFallbackBuilder.phpUuidBuilderInterface.php
Codec
CodecInterface.phpGuidStringCodec.phpOrderedTimeCodec.phpStringCodec.phpTimestampFirstCombCodec.phpTimestampLastCombCodec.php
Converter
DegradedUuid.phpDeprecatedUuidInterface.phpDeprecatedUuidMethodsTrait.phpException
BuilderNotFoundException.phpDateTimeException.phpDceSecurityException.phpInvalidArgumentException.phpInvalidBytesException.phpInvalidUuidStringException.phpNameException.phpNodeException.phpRandomSourceException.phpTimeSourceException.phpUnableToBuildUuidException.phpUnsupportedOperationException.phpUuidExceptionInterface.php
FeatureSet.phpFields
Generator
CombGenerator.phpDceSecurityGenerator.phpDceSecurityGeneratorInterface.phpDefaultNameGenerator.phpDefaultTimeGenerator.phpNameGeneratorFactory.phpNameGeneratorInterface.phpPeclUuidNameGenerator.phpPeclUuidRandomGenerator.phpPeclUuidTimeGenerator.phpRandomBytesGenerator.phpRandomGeneratorFactory.phpRandomGeneratorInterface.phpRandomLibAdapter.phpTimeGeneratorFactory.phpTimeGeneratorInterface.php
Guid
Lazy
Math
Nonstandard
Provider
Dce
DceSecurityProviderInterface.phpNode
FallbackNodeProvider.phpNodeProviderCollection.phpRandomNodeProvider.phpStaticNodeProvider.phpSystemNodeProvider.php
NodeProviderInterface.phpTime
TimeProviderInterface.phpRfc4122
Fields.phpFieldsInterface.phpNilTrait.phpNilUuid.phpUuidBuilder.phpUuidInterface.phpUuidV1.phpUuidV2.phpUuidV3.phpUuidV4.phpUuidV5.phpValidator.phpVariantTrait.phpVersionTrait.php
Type
Uuid.phpUuidFactory.phpUuidFactoryInterface.phpUuidInterface.phpValidator
functions.phpspomky-labs
base64url
cbor-php
LICENSEcomposer.json
src
AbstractCBORObject.phpByteStringObject.phpByteStringWithChunkObject.phpCBORObject.phpDecoder.phpDecoderInterface.phpIndefiniteLengthByteStringObject.phpIndefiniteLengthListObject.phpIndefiniteLengthMapObject.phpIndefiniteLengthTextStringObject.phpInfiniteListObject.phpInfiniteMapObject.phpLengthCalculator.phpListObject.phpMapItem.phpMapObject.phpNegativeIntegerObject.phpNormalizable.phpOtherObject.php
OtherObject
BreakObject.phpDoublePrecisionFloatObject.phpFalseObject.phpGenericObject.phpHalfPrecisionFloatObject.phpNullObject.phpOtherObjectManager.phpOtherObjectManagerInterface.phpSimpleObject.phpSinglePrecisionFloatObject.phpTrueObject.phpUndefinedObject.php
SignedIntegerObject.phpStream.phpStringStream.phpTag.phpTag
Base16EncodingTag.phpBase64EncodingTag.phpBase64Tag.phpBase64UrlEncodingTag.phpBase64UrlTag.phpBigFloatTag.phpCBOREncodingTag.phpCBORTag.phpDatetimeTag.phpDecimalFractionTag.phpEpochTag.phpGenericTag.phpMimeTag.phpNegativeBigIntegerTag.phpPositiveBigIntegerTag.phpTagManager.phpTagManagerInterface.phpTagObjectManager.phpTimestampTag.phpUnsignedBigIntegerTag.phpUriTag.php
TagObject.phpTextStringObject.phpTextStringWithChunkObject.phpUnsignedIntegerObject.phpUtils.phpsymfony
polyfill-ctype
polyfill-php80
polyfill-php81
process
CHANGELOG.md
Exception
ExceptionInterface.phpInvalidArgumentException.phpLogicException.phpProcessFailedException.phpProcessSignaledException.phpProcessTimedOutException.phpRuntimeException.php
ExecutableFinder.phpInputStream.phpLICENSEPhpExecutableFinder.phpPhpProcess.phpPipes
Process.phpProcessUtils.phpREADME.mdcomposer.jsonthecodingmachine
safe
LICENSEREADME.mdcomposer.json
deprecated
generated
Exceptions
.gitkeepApacheException.phpApcuException.phpArrayException.phpBzip2Exception.phpCalendarException.phpClassobjException.phpComException.phpCubridException.phpDatetimeException.phpDirException.phpEioException.phpErrorfuncException.phpExecException.phpFileinfoException.phpFilesystemException.phpFilterException.phpFpmException.phpFtpException.phpFunchandException.phpGmpException.phpGnupgException.phpHashException.phpIbaseException.phpIbmDb2Exception.phpIconvException.phpImageException.phpImapException.phpInfoException.phpIngresiiException.phpInotifyException.phpLdapException.phpLibxmlException.phpLzfException.phpMailparseException.phpMbstringException.phpMiscException.phpMsqlException.phpMysqlException.phpMysqliException.phpMysqlndMsException.phpMysqlndQcException.phpNetworkException.phpOci8Exception.phpOpcacheException.phpOutcontrolException.phpPasswordException.phpPcntlException.phpPdfException.phpPgsqlException.phpPosixException.phpPsException.phpPspellException.phpReadlineException.phpRpminfoException.phpRrdException.phpSemException.phpSessionException.phpShmopException.phpSimplexmlException.phpSocketsException.phpSodiumException.phpSolrException.phpSplException.phpSqlsrvException.phpSsdeepException.phpSsh2Exception.phpStreamException.phpStringsException.phpSwooleException.phpUodbcException.phpUopzException.phpUrlException.phpVarException.phpXdiffException.phpXmlException.phpXmlrpcException.phpYamlException.phpYazException.phpZipException.phpZlibException.php
apache.phpapcu.phparray.phpbzip2.phpcalendar.phpclassobj.phpcom.phpcubrid.phpcurl.phpdatetime.phpdir.phpeio.phperrorfunc.phpexec.phpfileinfo.phpfilesystem.phpfilter.phpfpm.phpftp.phpfunchand.phpfunctionsList.phpgmp.phpgnupg.phphash.phpibase.phpibmDb2.phpiconv.phpimage.phpimap.phpinfo.phpingres-ii.phpinotify.phpjson.phpldap.phplibxml.phplzf.phpmailparse.phpmbstring.phpmisc.phpmsql.phpmysql.phpmysqli.phpmysqlndMs.phpmysqlndQc.phpnetwork.phpoci8.phpopcache.phpopenssl.phpoutcontrol.phppassword.phppcntl.phppcre.phppdf.phppgsql.phpposix.phpps.phppspell.phpreadline.phprpminfo.phprrd.phpsem.phpsession.phpshmop.phpsimplexml.phpsockets.phpsodium.phpsolr.phpspl.phpsqlsrv.phpssdeep.phpssh2.phpstream.phpstrings.phpswoole.phpuodbc.phpuopz.phpurl.phpvar.phpxdiff.phpxml.phpxmlrpc.phpyaml.phpyaz.phpzip.phpzlib.phplib
rector-migrate-0.7.phpweb-auth
cose-lib
LICENSEcomposer.json
src
Algorithm
Algorithms.phpBigInteger.phpHash.phpKey
Verifier.phpmetadata-service
LICENSEcomposer.json
src
AbstractDescriptor.phpAuthenticatorStatus.phpBiometricAccuracyDescriptor.phpBiometricStatusReport.phpCodeAccuracyDescriptor.phpDisplayPNGCharacteristicsDescriptor.phpDistantSingleMetadata.phpEcdaaTrustAnchor.phpExtensionDescriptor.phpMetadataService.phpMetadataStatement.phpMetadataStatementFetcher.phpMetadataStatementRepository.phpMetadataTOCPayload.phpMetadataTOCPayloadEntry.phpPatternAccuracyDescriptor.phpRgbPaletteEntry.phpRogueListEntry.phpSingleMetadata.phpStatusReport.phpUtils.phpVerificationMethodANDCombinations.phpVerificationMethodDescriptor.phpVersion.php
webauthn-lib
LICENSEcomposer.json
src
AttestationStatement
AndroidKeyAttestationStatementSupport.phpAndroidSafetyNetAttestationStatementSupport.phpAppleAttestationStatementSupport.phpAttestationObject.phpAttestationObjectLoader.phpAttestationStatement.phpAttestationStatementSupport.phpAttestationStatementSupportManager.phpFidoU2FAttestationStatementSupport.phpNoneAttestationStatementSupport.phpPackedAttestationStatementSupport.phpTPMAttestationStatementSupport.php
AttestedCredentialData.phpAuthenticationExtensions
AuthenticationExtension.phpAuthenticationExtensionsClientInputs.phpAuthenticationExtensionsClientOutputs.phpAuthenticationExtensionsClientOutputsLoader.phpExtensionOutputChecker.phpExtensionOutputCheckerHandler.phpExtensionOutputError.php
AuthenticatorAssertionResponse.phpAuthenticatorAssertionResponseValidator.phpAuthenticatorAttestationResponse.phpAuthenticatorAttestationResponseValidator.phpAuthenticatorData.phpAuthenticatorResponse.phpAuthenticatorSelectionCriteria.phpCertificateChainChecker
CertificateToolbox.phpCollectedClientData.phpCounter
Credential.phpPublicKeyCredential.phpPublicKeyCredentialCreationOptions.phpPublicKeyCredentialDescriptor.phpPublicKeyCredentialDescriptorCollection.phpPublicKeyCredentialEntity.phpPublicKeyCredentialLoader.phpPublicKeyCredentialOptions.phpPublicKeyCredentialParameters.phpPublicKeyCredentialRequestOptions.phpPublicKeyCredentialRpEntity.phpPublicKeyCredentialSource.phpPublicKeyCredentialSourceRepository.phpPublicKeyCredentialUserEntity.phpServer.phpStringStream.phpTokenBinding
IgnoreTokenBindingHandler.phpSecTokenBindingHandler.phpTokenBinding.phpTokenBindingHandler.phpTokenBindingNotSupportedHandler.php
TrustPath
U2FPublicKey.phpUtil
web-token
jwt-core
.github
Algorithm.phpAlgorithmManager.phpAlgorithmManagerFactory.phpJWK.phpJWKSet.phpJWT.phpLICENSEREADME.mdUtil
composer.jsonjwt-key-mgmt
.github
Analyzer
AlgorithmAnalyzer.phpES256KeyAnalyzer.phpES384KeyAnalyzer.phpES512KeyAnalyzer.phpHS256KeyAnalyzer.phpHS384KeyAnalyzer.phpHS512KeyAnalyzer.phpKeyAnalyzer.phpKeyAnalyzerManager.phpKeyIdentifierAnalyzer.phpKeysetAnalyzer.phpKeysetAnalyzerManager.phpMessage.phpMessageBag.phpMixedKeyTypes.phpMixedPublicAndPrivateKeys.phpNoneAnalyzer.phpOctAnalyzer.phpRsaAnalyzer.phpUsageAnalyzer.phpZxcvbnKeyAnalyzer.php
JKUFactory.phpJWKFactory.phpKeyConverter
LICENSEREADME.mdUrlKeySetFactory.phpX5UFactory.phpcomposer.jsonjwt-signature-algorithm-ecdsa
jwt-signature-algorithm-eddsa
jwt-signature-algorithm-rsa
.github
LICENSEPS256.phpPS384.phpPS512.phpREADME.mdRS256.phpRS384.phpRS512.phpRSA.phpRSAPKCS1.phpRSAPSS.phpUtil
composer.jsonjwt-signature
.github
Algorithm
JWS.phpJWSBuilder.phpJWSBuilderFactory.phpJWSLoader.phpJWSLoaderFactory.phpJWSTokenSupport.phpJWSVerifier.phpJWSVerifierFactory.phpLICENSEREADME.mdSerializer
CompactSerializer.phpJSONFlattenedSerializer.phpJSONGeneralSerializer.phpJWSSerializer.phpJWSSerializerManager.phpJWSSerializerManagerFactory.phpSerializer.php
Signature.phpcomposer.json
4
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/.github/CONTRIBUTING.md
vendored
Normal file
4
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/.github/CONTRIBUTING.md
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# Contributing
|
||||
|
||||
This repository is a sub repository of [the JWT Framework](https://github.com/web-token/jwt-framework) project and is READ ONLY.
|
||||
Please do not submit any Pull Requests here. It will be automatically closed.
|
1
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/.github/FUNDING.yml
vendored
Normal file
1
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1 @@
|
||||
patreon: FlorentMorselli
|
3
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
3
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Please do not submit any Pull Requests here. It will be automatically closed.
|
||||
|
||||
You should submit it here: https://github.com/web-token/jwt-framework/pulls
|
26
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/AlgorithmAnalyzer.php
vendored
Normal file
26
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/AlgorithmAnalyzer.php
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
final class AlgorithmAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if (!$jwk->has('alg')) {
|
||||
$bag->add(Message::medium('The parameter "alg" should be added.'));
|
||||
}
|
||||
}
|
||||
}
|
61
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/ES256KeyAnalyzer.php
vendored
Normal file
61
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/ES256KeyAnalyzer.php
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Base64Url\Base64Url;
|
||||
use Brick\Math\BigInteger;
|
||||
use Jose\Component\Core\JWK;
|
||||
use Jose\Component\Core\Util\Ecc\NistCurve;
|
||||
use RuntimeException;
|
||||
|
||||
final class ES256KeyAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
/**
|
||||
* @throws RuntimeException if the component "web-token/jwt-util-ecc" is missing
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
if (!class_exists(NistCurve::class)) {
|
||||
throw new RuntimeException('Please install web-token/jwt-util-ecc to use this key analyzer');
|
||||
}
|
||||
}
|
||||
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('EC' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
if (!$jwk->has('crv')) {
|
||||
$bag->add(Message::high('Invalid key. The components "crv" is missing.'));
|
||||
|
||||
return;
|
||||
}
|
||||
if ('P-256' !== $jwk->get('crv')) {
|
||||
return;
|
||||
}
|
||||
$x = Base64Url::decode($jwk->get('x'));
|
||||
$xLength = 8 * mb_strlen($x, '8bit');
|
||||
$y = Base64Url::decode($jwk->get('y'));
|
||||
$yLength = 8 * mb_strlen($y, '8bit');
|
||||
if ($yLength !== $xLength || 256 !== $yLength) {
|
||||
$bag->add(Message::high('Invalid key. The components "x" and "y" size shall be 256 bits.'));
|
||||
}
|
||||
$xBI = BigInteger::fromBase(bin2hex($x), 16);
|
||||
$yBI = BigInteger::fromBase(bin2hex($y), 16);
|
||||
$curve = NistCurve::curve256();
|
||||
if (!$curve->contains($xBI, $yBI)) {
|
||||
$bag->add(Message::high('Invalid key. The point is not on the curve.'));
|
||||
}
|
||||
}
|
||||
}
|
61
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/ES384KeyAnalyzer.php
vendored
Normal file
61
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/ES384KeyAnalyzer.php
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Base64Url\Base64Url;
|
||||
use Brick\Math\BigInteger;
|
||||
use Jose\Component\Core\JWK;
|
||||
use Jose\Component\Core\Util\Ecc\NistCurve;
|
||||
use RuntimeException;
|
||||
|
||||
final class ES384KeyAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
/**
|
||||
* @throws RuntimeException if the component "web-token/jwt-util-ecc" is missing
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
if (!class_exists(NistCurve::class)) {
|
||||
throw new RuntimeException('Please install web-token/jwt-util-ecc to use this key analyzer');
|
||||
}
|
||||
}
|
||||
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('EC' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
if (!$jwk->has('crv')) {
|
||||
$bag->add(Message::high('Invalid key. The components "crv" is missing.'));
|
||||
|
||||
return;
|
||||
}
|
||||
if ('P-384' !== $jwk->get('crv')) {
|
||||
return;
|
||||
}
|
||||
$x = Base64Url::decode($jwk->get('x'));
|
||||
$xLength = 8 * mb_strlen($x, '8bit');
|
||||
$y = Base64Url::decode($jwk->get('y'));
|
||||
$yLength = 8 * mb_strlen($y, '8bit');
|
||||
if ($yLength !== $xLength || 384 !== $yLength) {
|
||||
$bag->add(Message::high('Invalid key. The components "x" and "y" size shall be 384 bits.'));
|
||||
}
|
||||
$xBI = BigInteger::fromBase(bin2hex($x), 16);
|
||||
$yBI = BigInteger::fromBase(bin2hex($y), 16);
|
||||
$curve = NistCurve::curve384();
|
||||
if (!$curve->contains($xBI, $yBI)) {
|
||||
$bag->add(Message::high('Invalid key. The point is not on the curve.'));
|
||||
}
|
||||
}
|
||||
}
|
61
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/ES512KeyAnalyzer.php
vendored
Normal file
61
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/ES512KeyAnalyzer.php
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Base64Url\Base64Url;
|
||||
use Brick\Math\BigInteger;
|
||||
use Jose\Component\Core\JWK;
|
||||
use Jose\Component\Core\Util\Ecc\NistCurve;
|
||||
use RuntimeException;
|
||||
|
||||
final class ES512KeyAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
/**
|
||||
* @throws RuntimeException if the component "web-token/jwt-util-ecc" is missing
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
if (!class_exists(NistCurve::class)) {
|
||||
throw new RuntimeException('Please install web-token/jwt-util-ecc to use this key analyzer');
|
||||
}
|
||||
}
|
||||
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('EC' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
if (!$jwk->has('crv')) {
|
||||
$bag->add(Message::high('Invalid key. The components "crv" is missing.'));
|
||||
|
||||
return;
|
||||
}
|
||||
if ('P-521' !== $jwk->get('crv')) {
|
||||
return;
|
||||
}
|
||||
$x = Base64Url::decode($jwk->get('x'));
|
||||
$xLength = 8 * mb_strlen($x, '8bit');
|
||||
$y = Base64Url::decode($jwk->get('y'));
|
||||
$yLength = 8 * mb_strlen($y, '8bit');
|
||||
if ($yLength !== $xLength || 528 !== $yLength) {
|
||||
$bag->add(Message::high('Invalid key. The components "x" and "y" size shall be 528 bits.'));
|
||||
}
|
||||
$xBI = BigInteger::fromBase(bin2hex($x), 16);
|
||||
$yBI = BigInteger::fromBase(bin2hex($y), 16);
|
||||
$curve = NistCurve::curve521();
|
||||
if (!$curve->contains($xBI, $yBI)) {
|
||||
$bag->add(Message::high('Invalid key. The point is not on the curve.'));
|
||||
}
|
||||
}
|
||||
}
|
35
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/HS256KeyAnalyzer.php
vendored
Normal file
35
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/HS256KeyAnalyzer.php
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Base64Url\Base64Url;
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
final class HS256KeyAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('oct' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
if (!$jwk->has('alg') || 'HS256' !== $jwk->get('alg')) {
|
||||
return;
|
||||
}
|
||||
$k = Base64Url::decode($jwk->get('k'));
|
||||
$kLength = 8 * mb_strlen($k, '8bit');
|
||||
if ($kLength < 256) {
|
||||
$bag->add(Message::high('HS256 algorithm requires at least 256 bits key length.'));
|
||||
}
|
||||
}
|
||||
}
|
35
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/HS384KeyAnalyzer.php
vendored
Normal file
35
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/HS384KeyAnalyzer.php
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Base64Url\Base64Url;
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
final class HS384KeyAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('oct' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
if (!$jwk->has('alg') || 'HS384' !== $jwk->get('alg')) {
|
||||
return;
|
||||
}
|
||||
$k = Base64Url::decode($jwk->get('k'));
|
||||
$kLength = 8 * mb_strlen($k, '8bit');
|
||||
if ($kLength < 384) {
|
||||
$bag->add(Message::high('HS384 algorithm requires at least 384 bits key length.'));
|
||||
}
|
||||
}
|
||||
}
|
35
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/HS512KeyAnalyzer.php
vendored
Normal file
35
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/HS512KeyAnalyzer.php
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Base64Url\Base64Url;
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
final class HS512KeyAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('oct' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
if (!$jwk->has('alg') || 'HS512' !== $jwk->get('alg')) {
|
||||
return;
|
||||
}
|
||||
$k = Base64Url::decode($jwk->get('k'));
|
||||
$kLength = 8 * mb_strlen($k, '8bit');
|
||||
if ($kLength < 512) {
|
||||
$bag->add(Message::high('HS512 algorithm requires at least 512 bits key length.'));
|
||||
}
|
||||
}
|
||||
}
|
24
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeyAnalyzer.php
vendored
Normal file
24
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeyAnalyzer.php
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
interface KeyAnalyzer
|
||||
{
|
||||
/**
|
||||
* This method will analyse the key and add messages to the message bag if needed.
|
||||
*/
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void;
|
||||
}
|
46
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeyAnalyzerManager.php
vendored
Normal file
46
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeyAnalyzerManager.php
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
class KeyAnalyzerManager
|
||||
{
|
||||
/**
|
||||
* @var KeyAnalyzer[]
|
||||
*/
|
||||
private $analyzers = [];
|
||||
|
||||
/**
|
||||
* Adds a Key Analyzer to the manager.
|
||||
*/
|
||||
public function add(KeyAnalyzer $analyzer): void
|
||||
{
|
||||
$this->analyzers[] = $analyzer;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will analyze the JWK object using all analyzers.
|
||||
* It returns a message bag that may contains messages.
|
||||
*/
|
||||
public function analyze(JWK $jwk): MessageBag
|
||||
{
|
||||
$bag = new MessageBag();
|
||||
foreach ($this->analyzers as $analyzer) {
|
||||
$analyzer->analyze($jwk, $bag);
|
||||
}
|
||||
|
||||
return $bag;
|
||||
}
|
||||
}
|
26
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeyIdentifierAnalyzer.php
vendored
Normal file
26
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeyIdentifierAnalyzer.php
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
final class KeyIdentifierAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if (!$jwk->has('kid')) {
|
||||
$bag->add(Message::medium('The parameter "kid" should be added.'));
|
||||
}
|
||||
}
|
||||
}
|
24
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeysetAnalyzer.php
vendored
Normal file
24
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeysetAnalyzer.php
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Jose\Component\Core\JWKSet;
|
||||
|
||||
interface KeysetAnalyzer
|
||||
{
|
||||
/**
|
||||
* This method will analyse the key set and add messages to the message bag if needed.
|
||||
*/
|
||||
public function analyze(JWKSet $JWKSet, MessageBag $bag): void;
|
||||
}
|
46
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeysetAnalyzerManager.php
vendored
Normal file
46
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/KeysetAnalyzerManager.php
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Jose\Component\Core\JWKSet;
|
||||
|
||||
class KeysetAnalyzerManager
|
||||
{
|
||||
/**
|
||||
* @var KeysetAnalyzer[]
|
||||
*/
|
||||
private $analyzers = [];
|
||||
|
||||
/**
|
||||
* Adds a Keyset Analyzer to the manager.
|
||||
*/
|
||||
public function add(KeysetAnalyzer $analyzer): void
|
||||
{
|
||||
$this->analyzers[] = $analyzer;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will analyze the JWKSet object using all analyzers.
|
||||
* It returns a message bag that may contains messages.
|
||||
*/
|
||||
public function analyze(JWKSet $jwkset): MessageBag
|
||||
{
|
||||
$bag = new MessageBag();
|
||||
foreach ($this->analyzers as $analyzer) {
|
||||
$analyzer->analyze($jwkset, $bag);
|
||||
}
|
||||
|
||||
return $bag;
|
||||
}
|
||||
}
|
97
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/Message.php
vendored
Normal file
97
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/Message.php
vendored
Normal file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use JsonSerializable;
|
||||
|
||||
class Message implements JsonSerializable
|
||||
{
|
||||
public const SEVERITY_LOW = 'low';
|
||||
|
||||
public const SEVERITY_MEDIUM = 'medium';
|
||||
|
||||
public const SEVERITY_HIGH = 'high';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $message;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $severity;
|
||||
|
||||
/**
|
||||
* Message constructor.
|
||||
*/
|
||||
private function __construct(string $message, string $severity)
|
||||
{
|
||||
$this->message = $message;
|
||||
$this->severity = $severity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a message with severity=low.
|
||||
*
|
||||
* @return Message
|
||||
*/
|
||||
public static function low(string $message): self
|
||||
{
|
||||
return new self($message, self::SEVERITY_LOW);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a message with severity=medium.
|
||||
*
|
||||
* @return Message
|
||||
*/
|
||||
public static function medium(string $message): self
|
||||
{
|
||||
return new self($message, self::SEVERITY_MEDIUM);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a message with severity=high.
|
||||
*
|
||||
* @return Message
|
||||
*/
|
||||
public static function high(string $message): self
|
||||
{
|
||||
return new self($message, self::SEVERITY_HIGH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the message.
|
||||
*/
|
||||
public function getMessage(): string
|
||||
{
|
||||
return $this->message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the severity of the message.
|
||||
*/
|
||||
public function getSeverity(): string
|
||||
{
|
||||
return $this->severity;
|
||||
}
|
||||
|
||||
public function jsonSerialize(): array
|
||||
{
|
||||
return [
|
||||
'message' => $this->message,
|
||||
'severity' => $this->severity,
|
||||
];
|
||||
}
|
||||
}
|
71
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/MessageBag.php
vendored
Normal file
71
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/MessageBag.php
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use ArrayIterator;
|
||||
use function count;
|
||||
use Countable;
|
||||
use IteratorAggregate;
|
||||
use JsonSerializable;
|
||||
use Traversable;
|
||||
|
||||
class MessageBag implements JsonSerializable, IteratorAggregate, Countable
|
||||
{
|
||||
/**
|
||||
* @var Message[]
|
||||
*/
|
||||
private $messages = [];
|
||||
|
||||
/**
|
||||
* Adds a message to the message bag.
|
||||
*/
|
||||
public function add(Message $message): void
|
||||
{
|
||||
$this->messages[] = $message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all messages.
|
||||
*
|
||||
* @return Message[]
|
||||
*/
|
||||
public function all(): array
|
||||
{
|
||||
return $this->messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function jsonSerialize(): array
|
||||
{
|
||||
return array_values($this->messages);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return count($this->messages);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getIterator(): Traversable
|
||||
{
|
||||
return new ArrayIterator($this->messages);
|
||||
}
|
||||
}
|
49
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/MixedKeyTypes.php
vendored
Normal file
49
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/MixedKeyTypes.php
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Jose\Component\Core\JWKSet;
|
||||
|
||||
final class MixedKeyTypes implements KeysetAnalyzer
|
||||
{
|
||||
public function analyze(JWKSet $jwkset, MessageBag $bag): void
|
||||
{
|
||||
if (0 === $jwkset->count()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$hasSymmetricKeys = false;
|
||||
$hasAsymmetricKeys = false;
|
||||
|
||||
foreach ($jwkset as $jwk) {
|
||||
switch ($jwk->get('kty')) {
|
||||
case 'oct':
|
||||
$hasSymmetricKeys = true;
|
||||
|
||||
break;
|
||||
|
||||
case 'OKP':
|
||||
case 'RSA':
|
||||
case 'EC':
|
||||
$hasAsymmetricKeys = true;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($hasAsymmetricKeys && $hasSymmetricKeys) {
|
||||
$bag->add(Message::medium('This key set mixes symmetric and assymetric keys.'));
|
||||
}
|
||||
}
|
||||
}
|
48
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/MixedPublicAndPrivateKeys.php
vendored
Normal file
48
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/MixedPublicAndPrivateKeys.php
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Jose\Component\Core\JWKSet;
|
||||
|
||||
final class MixedPublicAndPrivateKeys implements KeysetAnalyzer
|
||||
{
|
||||
public function analyze(JWKSet $jwkset, MessageBag $bag): void
|
||||
{
|
||||
if (0 === $jwkset->count()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$hasPublicKeys = false;
|
||||
$hasPrivateKeys = false;
|
||||
|
||||
foreach ($jwkset as $jwk) {
|
||||
switch ($jwk->get('kty')) {
|
||||
case 'OKP':
|
||||
case 'RSA':
|
||||
case 'EC':
|
||||
if ($jwk->has('d')) {
|
||||
$hasPrivateKeys = true;
|
||||
} else {
|
||||
$hasPublicKeys = true;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($hasPrivateKeys && $hasPublicKeys) {
|
||||
$bag->add(Message::high('This key set mixes public and private keys.'));
|
||||
}
|
||||
}
|
||||
}
|
28
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/NoneAnalyzer.php
vendored
Normal file
28
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/NoneAnalyzer.php
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
final class NoneAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('none' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$bag->add(Message::high('This key is a meant to be used with the algorithm "none". This algorithm is not secured and should be used with care.'));
|
||||
}
|
||||
}
|
32
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/OctAnalyzer.php
vendored
Normal file
32
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/OctAnalyzer.php
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Base64Url\Base64Url;
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
final class OctAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('oct' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
$k = Base64Url::decode($jwk->get('k'));
|
||||
$kLength = 8 * mb_strlen($k, '8bit');
|
||||
if ($kLength < 128) {
|
||||
$bag->add(Message::high('The key length is less than 128 bits.'));
|
||||
}
|
||||
}
|
||||
}
|
54
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/RsaAnalyzer.php
vendored
Normal file
54
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/RsaAnalyzer.php
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Base64Url\Base64Url;
|
||||
use InvalidArgumentException;
|
||||
use function is_array;
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
final class RsaAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('RSA' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->checkExponent($jwk, $bag);
|
||||
$this->checkModulus($jwk, $bag);
|
||||
}
|
||||
|
||||
private function checkExponent(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
$exponent = unpack('l', str_pad(Base64Url::decode($jwk->get('e')), 4, "\0"));
|
||||
if (!is_array($exponent) || !isset($exponent[1])) {
|
||||
throw new InvalidArgumentException('Unable to get the private key');
|
||||
}
|
||||
if ($exponent[1] < 65537) {
|
||||
$bag->add(Message::high('The exponent is too low. It should be at least 65537.'));
|
||||
}
|
||||
}
|
||||
|
||||
private function checkModulus(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
$n = 8 * mb_strlen(Base64Url::decode($jwk->get('n')), '8bit');
|
||||
if ($n < 2048) {
|
||||
$bag->add(Message::high('The key length is less than 2048 bits.'));
|
||||
}
|
||||
if ($jwk->has('d') && (!$jwk->has('p') || !$jwk->has('q') || !$jwk->has('dp') || !$jwk->has('dq') || !$jwk->has('p') || !$jwk->has('qi'))) {
|
||||
$bag->add(Message::medium('The key is a private RSA key, but Chinese Remainder Theorem primes are missing. These primes are not mandatory, but signatures and decryption processes are faster when available.'));
|
||||
}
|
||||
}
|
||||
}
|
32
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/UsageAnalyzer.php
vendored
Normal file
32
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/UsageAnalyzer.php
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use function in_array;
|
||||
use Jose\Component\Core\JWK;
|
||||
|
||||
final class UsageAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if (!$jwk->has('use')) {
|
||||
$bag->add(Message::medium('The parameter "use" should be added.'));
|
||||
} elseif (!in_array($jwk->get('use'), ['sig', 'enc'], true)) {
|
||||
$bag->add(Message::high(sprintf('The parameter "use" has an unsupported value "%s". Please use "sig" (signature) or "enc" (encryption).', $jwk->get('use'))));
|
||||
}
|
||||
if ($jwk->has('key_ops') && !in_array($jwk->get('key_ops'), ['sign', 'verify', 'encrypt', 'decrypt', 'wrapKey', 'unwrapKey'], true)) {
|
||||
$bag->add(Message::high(sprintf('The parameter "key_ops" has an unsupported value "%s". Please use one of the following values: %s.', $jwk->get('use'), implode(', ', ['verify', 'sign', 'encryp', 'decrypt', 'wrapKey', 'unwrapKey']))));
|
||||
}
|
||||
}
|
||||
}
|
48
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/ZxcvbnKeyAnalyzer.php
vendored
Normal file
48
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/Analyzer/ZxcvbnKeyAnalyzer.php
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\Analyzer;
|
||||
|
||||
use Base64Url\Base64Url;
|
||||
use Jose\Component\Core\JWK;
|
||||
use ZxcvbnPhp\Zxcvbn;
|
||||
|
||||
final class ZxcvbnKeyAnalyzer implements KeyAnalyzer
|
||||
{
|
||||
public function analyze(JWK $jwk, MessageBag $bag): void
|
||||
{
|
||||
if ('oct' !== $jwk->get('kty')) {
|
||||
return;
|
||||
}
|
||||
$k = Base64Url::decode($jwk->get('k'));
|
||||
if (class_exists(Zxcvbn::class)) {
|
||||
$zxcvbn = new Zxcvbn();
|
||||
$strength = $zxcvbn->passwordStrength($k);
|
||||
|
||||
switch (true) {
|
||||
case $strength['score'] < 3:
|
||||
$bag->add(Message::high('The octet string is weak and easily guessable. Please change your key as soon as possible.'));
|
||||
|
||||
break;
|
||||
|
||||
case 3 === $strength['score']:
|
||||
$bag->add(Message::medium('The octet string is safe, but a longer key is preferable.'));
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
39
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/JKUFactory.php
vendored
Normal file
39
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/JKUFactory.php
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement;
|
||||
|
||||
use function is_array;
|
||||
use Jose\Component\Core\JWKSet;
|
||||
use Jose\Component\Core\Util\JsonConverter;
|
||||
use RuntimeException;
|
||||
|
||||
class JKUFactory extends UrlKeySetFactory
|
||||
{
|
||||
/**
|
||||
* This method will try to fetch the url a retrieve the key set.
|
||||
* Throws an exception in case of failure.
|
||||
*
|
||||
* @throws RuntimeException if the key cannot be reached
|
||||
*/
|
||||
public function loadFromUrl(string $url, array $header = []): JWKSet
|
||||
{
|
||||
$content = $this->getContent($url, $header);
|
||||
$data = JsonConverter::decode($content);
|
||||
if (!is_array($data)) {
|
||||
throw new RuntimeException('Invalid content.');
|
||||
}
|
||||
|
||||
return JWKSet::createFromKeyData($data);
|
||||
}
|
||||
}
|
328
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/JWKFactory.php
vendored
Normal file
328
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/JWKFactory.php
vendored
Normal file
@ -0,0 +1,328 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement;
|
||||
|
||||
use function array_key_exists;
|
||||
use Base64Url\Base64Url;
|
||||
use function extension_loaded;
|
||||
use InvalidArgumentException;
|
||||
use function is_array;
|
||||
use function is_string;
|
||||
use Jose\Component\Core\JWK;
|
||||
use Jose\Component\Core\JWKSet;
|
||||
use Jose\Component\Core\Util\ECKey;
|
||||
use Jose\Component\KeyManagement\KeyConverter\KeyConverter;
|
||||
use Jose\Component\KeyManagement\KeyConverter\RSAKey;
|
||||
use RuntimeException;
|
||||
use Throwable;
|
||||
|
||||
class JWKFactory
|
||||
{
|
||||
/**
|
||||
* Creates a RSA key with the given key size and additional values.
|
||||
*
|
||||
* @param int $size The key size in bits
|
||||
* @param array $values values to configure the key
|
||||
*
|
||||
* @throws InvalidArgumentException if the key has an invalid size
|
||||
* @throws InvalidArgumentException if it is not possible to create the key
|
||||
*/
|
||||
public static function createRSAKey(int $size, array $values = []): JWK
|
||||
{
|
||||
if (0 !== $size % 8) {
|
||||
throw new InvalidArgumentException('Invalid key size.');
|
||||
}
|
||||
if (512 > $size) {
|
||||
throw new InvalidArgumentException('Key length is too short. It needs to be at least 512 bits.');
|
||||
}
|
||||
|
||||
$key = openssl_pkey_new([
|
||||
'private_key_bits' => $size,
|
||||
'private_key_type' => OPENSSL_KEYTYPE_RSA,
|
||||
]);
|
||||
if (false === $key) {
|
||||
throw new InvalidArgumentException('Unable to create the key');
|
||||
}
|
||||
$details = openssl_pkey_get_details($key);
|
||||
if (!is_array($details)) {
|
||||
throw new InvalidArgumentException('Unable to create the key');
|
||||
}
|
||||
$rsa = RSAKey::createFromKeyDetails($details['rsa']);
|
||||
$values = array_merge(
|
||||
$values,
|
||||
$rsa->toArray()
|
||||
);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a EC key with the given curve and additional values.
|
||||
*
|
||||
* @param string $curve The curve
|
||||
* @param array $values values to configure the key
|
||||
*/
|
||||
public static function createECKey(string $curve, array $values = []): JWK
|
||||
{
|
||||
return ECKey::createECKey($curve, $values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a octet key with the given key size and additional values.
|
||||
*
|
||||
* @param int $size The key size in bits
|
||||
* @param array $values values to configure the key
|
||||
*
|
||||
* @throws InvalidArgumentException if the key has an invalid size
|
||||
*/
|
||||
public static function createOctKey(int $size, array $values = []): JWK
|
||||
{
|
||||
if (0 !== $size % 8) {
|
||||
throw new InvalidArgumentException('Invalid key size.');
|
||||
}
|
||||
$values = array_merge(
|
||||
$values,
|
||||
[
|
||||
'kty' => 'oct',
|
||||
'k' => Base64Url::encode(random_bytes($size / 8)),
|
||||
]
|
||||
);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a OKP key with the given curve and additional values.
|
||||
*
|
||||
* @param string $curve The curve
|
||||
* @param array $values values to configure the key
|
||||
*
|
||||
* @throws InvalidArgumentException if the extension "sobium" is not available
|
||||
* @throws InvalidArgumentException if the curve is not supported
|
||||
*/
|
||||
public static function createOKPKey(string $curve, array $values = []): JWK
|
||||
{
|
||||
if (!extension_loaded('sodium')) {
|
||||
throw new RuntimeException('The extension "sodium" is not available. Please install it to use this method');
|
||||
}
|
||||
|
||||
switch ($curve) {
|
||||
case 'X25519':
|
||||
$keyPair = sodium_crypto_box_keypair();
|
||||
$secret = sodium_crypto_box_secretkey($keyPair);
|
||||
$x = sodium_crypto_box_publickey($keyPair);
|
||||
|
||||
break;
|
||||
|
||||
case 'Ed25519':
|
||||
$keyPair = sodium_crypto_sign_keypair();
|
||||
$secret = sodium_crypto_sign_secretkey($keyPair);
|
||||
$x = sodium_crypto_sign_publickey($keyPair);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new InvalidArgumentException(sprintf('Unsupported "%s" curve', $curve));
|
||||
}
|
||||
$secretLength = mb_strlen($secret, '8bit');
|
||||
$d = mb_substr($secret, 0, -$secretLength / 2, '8bit');
|
||||
|
||||
$values = array_merge(
|
||||
$values,
|
||||
[
|
||||
'kty' => 'OKP',
|
||||
'crv' => $curve,
|
||||
'd' => Base64Url::encode($d),
|
||||
'x' => Base64Url::encode($x),
|
||||
]
|
||||
);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a none key with the given additional values.
|
||||
* Please note that this key type is not pat of any specification.
|
||||
* It is used to prevent the use of the "none" algorithm with other key types.
|
||||
*
|
||||
* @param array $values values to configure the key
|
||||
*/
|
||||
public static function createNoneKey(array $values = []): JWK
|
||||
{
|
||||
$values = array_merge(
|
||||
$values,
|
||||
[
|
||||
'kty' => 'none',
|
||||
'alg' => 'none',
|
||||
'use' => 'sig',
|
||||
]
|
||||
);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key from a Json string.
|
||||
*
|
||||
* @throws InvalidArgumentException if the key or keyset is not valid
|
||||
*
|
||||
* @return JWK|JWKSet
|
||||
*/
|
||||
public static function createFromJsonObject(string $value)
|
||||
{
|
||||
$json = json_decode($value, true);
|
||||
if (!is_array($json)) {
|
||||
throw new InvalidArgumentException('Invalid key or key set.');
|
||||
}
|
||||
|
||||
return self::createFromValues($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key or key set from the given input.
|
||||
*
|
||||
* @return JWK|JWKSet
|
||||
*/
|
||||
public static function createFromValues(array $values)
|
||||
{
|
||||
if (array_key_exists('keys', $values) && is_array($values['keys'])) {
|
||||
return JWKSet::createFromKeyData($values);
|
||||
}
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method create a JWK object using a shared secret.
|
||||
*/
|
||||
public static function createFromSecret(string $secret, array $additional_values = []): JWK
|
||||
{
|
||||
$values = array_merge(
|
||||
$additional_values,
|
||||
[
|
||||
'kty' => 'oct',
|
||||
'k' => Base64Url::encode($secret),
|
||||
]
|
||||
);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will try to load a X.509 certificate and convert it into a public key.
|
||||
*/
|
||||
public static function createFromCertificateFile(string $file, array $additional_values = []): JWK
|
||||
{
|
||||
$values = KeyConverter::loadKeyFromCertificateFile($file);
|
||||
$values = array_merge($values, $additional_values);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract a keyfrom a key set identified by the given index .
|
||||
*
|
||||
* @param int|string $index
|
||||
*/
|
||||
public static function createFromKeySet(JWKSet $jwkset, $index): JWK
|
||||
{
|
||||
return $jwkset->get($index);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will try to load a PKCS#12 file and convert it into a public key.
|
||||
*
|
||||
* @throws InvalidArgumentException if the certificate cannot be loaded
|
||||
*/
|
||||
public static function createFromPKCS12CertificateFile(string $file, ?string $secret = '', array $additional_values = []): JWK
|
||||
{
|
||||
try {
|
||||
$content = file_get_contents($file);
|
||||
if (!is_string($content)) {
|
||||
throw new RuntimeException('Unable to read the file.');
|
||||
}
|
||||
openssl_pkcs12_read($content, $certs, $secret);
|
||||
} catch (Throwable $throwable) {
|
||||
throw new RuntimeException('Unable to load the certificates.', $throwable->getCode(), $throwable);
|
||||
}
|
||||
if (!is_array($certs) || !array_key_exists('pkey', $certs)) {
|
||||
throw new RuntimeException('Unable to load the certificates.');
|
||||
}
|
||||
|
||||
return self::createFromKey($certs['pkey'], null, $additional_values);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will try to convert a X.509 certificate into a public key.
|
||||
*/
|
||||
public static function createFromCertificate(string $certificate, array $additional_values = []): JWK
|
||||
{
|
||||
$values = KeyConverter::loadKeyFromCertificate($certificate);
|
||||
$values = array_merge($values, $additional_values);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will try to convert a X.509 certificate resource into a public key.
|
||||
*
|
||||
* @param resource $res
|
||||
*/
|
||||
public static function createFromX509Resource($res, array $additional_values = []): JWK
|
||||
{
|
||||
$values = KeyConverter::loadKeyFromX509Resource($res);
|
||||
$values = array_merge($values, $additional_values);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will try to load and convert a key file into a JWK object.
|
||||
* If the key is encrypted, the password must be set.
|
||||
*/
|
||||
public static function createFromKeyFile(string $file, ?string $password = null, array $additional_values = []): JWK
|
||||
{
|
||||
$values = KeyConverter::loadFromKeyFile($file, $password);
|
||||
$values = array_merge($values, $additional_values);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will try to load and convert a key into a JWK object.
|
||||
* If the key is encrypted, the password must be set.
|
||||
*/
|
||||
public static function createFromKey(string $key, ?string $password = null, array $additional_values = []): JWK
|
||||
{
|
||||
$values = KeyConverter::loadFromKey($key, $password);
|
||||
$values = array_merge($values, $additional_values);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will try to load and convert a X.509 certificate chain into a public key.
|
||||
*
|
||||
* Be careful! The certificate chain is loaded, but it is NOT VERIFIED by any mean!
|
||||
* It is mandatory to verify the root CA or intermediate CA are trusted.
|
||||
* If not done, it may lead to potential security issues.
|
||||
*/
|
||||
public static function createFromX5C(array $x5c, array $additional_values = []): JWK
|
||||
{
|
||||
$values = KeyConverter::loadFromX5C($x5c);
|
||||
$values = array_merge($values, $additional_values);
|
||||
|
||||
return new JWK($values);
|
||||
}
|
||||
}
|
307
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/KeyConverter/ECKey.php
vendored
Normal file
307
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/KeyConverter/ECKey.php
vendored
Normal file
@ -0,0 +1,307 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\KeyConverter;
|
||||
|
||||
use function array_key_exists;
|
||||
use Base64Url\Base64Url;
|
||||
use function count;
|
||||
use FG\ASN1\ASNObject;
|
||||
use FG\ASN1\Exception\ParserException;
|
||||
use FG\ASN1\ExplicitlyTaggedObject;
|
||||
use FG\ASN1\Universal\BitString;
|
||||
use FG\ASN1\Universal\Integer;
|
||||
use FG\ASN1\Universal\ObjectIdentifier;
|
||||
use FG\ASN1\Universal\OctetString;
|
||||
use FG\ASN1\Universal\Sequence;
|
||||
use InvalidArgumentException;
|
||||
use function is_array;
|
||||
use function is_string;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class ECKey
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $values = [];
|
||||
|
||||
private function __construct(array $data)
|
||||
{
|
||||
$this->loadJWK($data);
|
||||
}
|
||||
|
||||
public static function createFromPEM(string $pem): self
|
||||
{
|
||||
$data = self::loadPEM($pem);
|
||||
|
||||
return new self($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ECKey $private
|
||||
*
|
||||
* @return ECKey
|
||||
*/
|
||||
public static function toPublic(self $private): self
|
||||
{
|
||||
$data = $private->toArray();
|
||||
if (array_key_exists('d', $data)) {
|
||||
unset($data['d']);
|
||||
}
|
||||
|
||||
return new self($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
{
|
||||
return $this->values;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
* @throws ParserException if the key cannot be loaded
|
||||
*/
|
||||
private static function loadPEM(string $data): array
|
||||
{
|
||||
$data = base64_decode(preg_replace('#-.*-|\r|\n#', '', $data), true);
|
||||
$asnObject = ASNObject::fromBinary($data);
|
||||
if (!$asnObject instanceof Sequence) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
$children = $asnObject->getChildren();
|
||||
if (self::isPKCS8($children)) {
|
||||
$children = self::loadPKCS8($children);
|
||||
}
|
||||
|
||||
if (4 === count($children)) {
|
||||
return self::loadPrivatePEM($children);
|
||||
}
|
||||
if (2 === count($children)) {
|
||||
return self::loadPublicPEM($children);
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ASNObject[] $children
|
||||
*
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
* @throws ParserException if the key cannot be loaded
|
||||
*/
|
||||
private static function loadPKCS8(array $children): array
|
||||
{
|
||||
$binary = hex2bin($children[2]->getContent());
|
||||
$asnObject = ASNObject::fromBinary($binary);
|
||||
if (!$asnObject instanceof Sequence) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
return $asnObject->getChildren();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
*/
|
||||
private static function loadPublicPEM(array $children): array
|
||||
{
|
||||
if (!$children[0] instanceof Sequence) {
|
||||
throw new InvalidArgumentException('Unsupported key type.');
|
||||
}
|
||||
|
||||
$sub = $children[0]->getChildren();
|
||||
if (!$sub[0] instanceof ObjectIdentifier) {
|
||||
throw new InvalidArgumentException('Unsupported key type.');
|
||||
}
|
||||
if ('1.2.840.10045.2.1' !== $sub[0]->getContent()) {
|
||||
throw new InvalidArgumentException('Unsupported key type.');
|
||||
}
|
||||
if (!$sub[1] instanceof ObjectIdentifier) {
|
||||
throw new InvalidArgumentException('Unsupported key type.');
|
||||
}
|
||||
if (!$children[1] instanceof BitString) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
$bits = $children[1]->getContent();
|
||||
$bits_length = mb_strlen($bits, '8bit');
|
||||
if (0 !== mb_strpos($bits, '04', 0, '8bit')) {
|
||||
throw new InvalidArgumentException('Unsupported key type');
|
||||
}
|
||||
|
||||
$values = ['kty' => 'EC'];
|
||||
$values['crv'] = self::getCurve($sub[1]->getContent());
|
||||
|
||||
$xBin = hex2bin(mb_substr($bits, 2, ($bits_length - 2) / 2, '8bit'));
|
||||
$yBin = hex2bin(mb_substr($bits, (int) (($bits_length - 2) / 2 + 2), ($bits_length - 2) / 2, '8bit'));
|
||||
if (!is_string($xBin) || !is_string($yBin)) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
$values['x'] = Base64Url::encode($xBin);
|
||||
$values['y'] = Base64Url::encode($yBin);
|
||||
|
||||
return $values;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the OID is not supported
|
||||
*/
|
||||
private static function getCurve(string $oid): string
|
||||
{
|
||||
$curves = self::getSupportedCurves();
|
||||
$curve = array_search($oid, $curves, true);
|
||||
if (!is_string($curve)) {
|
||||
throw new InvalidArgumentException('Unsupported OID.');
|
||||
}
|
||||
|
||||
return $curve;
|
||||
}
|
||||
|
||||
private static function getSupportedCurves(): array
|
||||
{
|
||||
return [
|
||||
'P-256' => '1.2.840.10045.3.1.7',
|
||||
'P-384' => '1.3.132.0.34',
|
||||
'P-521' => '1.3.132.0.35',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
*/
|
||||
private static function verifyVersion(ASNObject $children): void
|
||||
{
|
||||
if (!$children instanceof Integer || '1' !== $children->getContent()) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
*/
|
||||
private static function getXAndY(ASNObject $children, string &$x, string &$y): void
|
||||
{
|
||||
if (!$children instanceof ExplicitlyTaggedObject || !is_array($children->getContent())) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
if (!$children->getContent()[0] instanceof BitString) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
$bits = $children->getContent()[0]->getContent();
|
||||
$bits_length = mb_strlen($bits, '8bit');
|
||||
|
||||
if (0 !== mb_strpos($bits, '04', 0, '8bit')) {
|
||||
throw new InvalidArgumentException('Unsupported key type');
|
||||
}
|
||||
|
||||
$x = mb_substr($bits, 2, (int) (($bits_length - 2) / 2), '8bit');
|
||||
$y = mb_substr($bits, (int) (($bits_length - 2) / 2 + 2), (int) (($bits_length - 2) / 2), '8bit');
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
*/
|
||||
private static function getD(ASNObject $children): string
|
||||
{
|
||||
if (!$children instanceof OctetString) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
return $children->getContent();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
*/
|
||||
private static function loadPrivatePEM(array $children): array
|
||||
{
|
||||
self::verifyVersion($children[0]);
|
||||
$x = '';
|
||||
$y = '';
|
||||
$d = self::getD($children[1]);
|
||||
self::getXAndY($children[3], $x, $y);
|
||||
|
||||
if (!$children[2] instanceof ExplicitlyTaggedObject || !is_array($children[2]->getContent())) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
if (!$children[2]->getContent()[0] instanceof ObjectIdentifier) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
$curve = $children[2]->getContent()[0]->getContent();
|
||||
$dBin = hex2bin($d);
|
||||
$xBin = hex2bin($x);
|
||||
$yBin = hex2bin($y);
|
||||
if (!is_string($dBin) || !is_string($xBin) || !is_string($yBin)) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
$values = ['kty' => 'EC'];
|
||||
$values['crv'] = self::getCurve($curve);
|
||||
$values['d'] = Base64Url::encode($dBin);
|
||||
$values['x'] = Base64Url::encode($xBin);
|
||||
$values['y'] = Base64Url::encode($yBin);
|
||||
|
||||
return $values;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ASNObject[] $children
|
||||
*/
|
||||
private static function isPKCS8(array $children): bool
|
||||
{
|
||||
if (3 !== count($children)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$classes = [0 => Integer::class, 1 => Sequence::class, 2 => OctetString::class];
|
||||
foreach ($classes as $k => $class) {
|
||||
if (!$children[$k] instanceof $class) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key is invalid
|
||||
*/
|
||||
private function loadJWK(array $jwk): void
|
||||
{
|
||||
$keys = [
|
||||
'kty' => 'The key parameter "kty" is missing.',
|
||||
'crv' => 'Curve parameter is missing',
|
||||
'x' => 'Point parameters are missing.',
|
||||
'y' => 'Point parameters are missing.',
|
||||
];
|
||||
foreach ($keys as $k => $v) {
|
||||
if (!array_key_exists($k, $jwk)) {
|
||||
throw new InvalidArgumentException($v);
|
||||
}
|
||||
}
|
||||
|
||||
if ('EC' !== $jwk['kty']) {
|
||||
throw new InvalidArgumentException('JWK is not an Elliptic Curve key.');
|
||||
}
|
||||
$this->values = $jwk;
|
||||
}
|
||||
}
|
272
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/KeyConverter/KeyConverter.php
vendored
Normal file
272
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/KeyConverter/KeyConverter.php
vendored
Normal file
@ -0,0 +1,272 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\KeyConverter;
|
||||
|
||||
use function array_key_exists;
|
||||
use Base64Url\Base64Url;
|
||||
use function count;
|
||||
use function extension_loaded;
|
||||
use InvalidArgumentException;
|
||||
use function is_array;
|
||||
use function is_string;
|
||||
use RuntimeException;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class KeyConverter
|
||||
{
|
||||
/**
|
||||
* @throws InvalidArgumentException if the certificate file cannot be read
|
||||
*/
|
||||
public static function loadKeyFromCertificateFile(string $file): array
|
||||
{
|
||||
if (!file_exists($file)) {
|
||||
throw new InvalidArgumentException(sprintf('File "%s" does not exist.', $file));
|
||||
}
|
||||
$content = file_get_contents($file);
|
||||
if (!is_string($content)) {
|
||||
throw new InvalidArgumentException(sprintf('File "%s" cannot be read.', $file));
|
||||
}
|
||||
|
||||
return self::loadKeyFromCertificate($content);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the OpenSSL extension is not available
|
||||
* @throws InvalidArgumentException if the certificate is invalid or cannot be loaded
|
||||
*/
|
||||
public static function loadKeyFromCertificate(string $certificate): array
|
||||
{
|
||||
if (!extension_loaded('openssl')) {
|
||||
throw new RuntimeException('Please install the OpenSSL extension');
|
||||
}
|
||||
|
||||
try {
|
||||
$res = openssl_x509_read($certificate);
|
||||
if (false === $res) {
|
||||
throw new InvalidArgumentException('Unable to load the certificate.');
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
$certificate = self::convertDerToPem($certificate);
|
||||
$res = openssl_x509_read($certificate);
|
||||
}
|
||||
if (false === $res) {
|
||||
throw new InvalidArgumentException('Unable to load the certificate.');
|
||||
}
|
||||
|
||||
return self::loadKeyFromX509Resource($res);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param resource $res
|
||||
*
|
||||
* @throws InvalidArgumentException if the OpenSSL extension is not available
|
||||
* @throws InvalidArgumentException if the certificate is invalid or cannot be loaded
|
||||
*/
|
||||
public static function loadKeyFromX509Resource($res): array
|
||||
{
|
||||
if (!extension_loaded('openssl')) {
|
||||
throw new RuntimeException('Please install the OpenSSL extension');
|
||||
}
|
||||
$key = openssl_get_publickey($res);
|
||||
if (false === $key) {
|
||||
throw new InvalidArgumentException('Unable to load the certificate.');
|
||||
}
|
||||
$details = openssl_pkey_get_details($key);
|
||||
if (!is_array($details)) {
|
||||
throw new InvalidArgumentException('Unable to load the certificate');
|
||||
}
|
||||
if (isset($details['key'])) {
|
||||
$values = self::loadKeyFromPEM($details['key']);
|
||||
openssl_x509_export($res, $out);
|
||||
$x5c = preg_replace('#-.*-#', '', $out);
|
||||
$x5c = preg_replace('~\R~', PHP_EOL, $x5c);
|
||||
if (!is_string($x5c)) {
|
||||
throw new InvalidArgumentException('Unable to load the certificate');
|
||||
}
|
||||
$x5c = trim($x5c);
|
||||
|
||||
$x5tsha1 = openssl_x509_fingerprint($res, 'sha1', true);
|
||||
$x5tsha256 = openssl_x509_fingerprint($res, 'sha256', true);
|
||||
if (!is_string($x5tsha1) || !is_string($x5tsha256)) {
|
||||
throw new InvalidArgumentException('Unable to compute the certificate fingerprint');
|
||||
}
|
||||
|
||||
$values['x5c'] = [$x5c];
|
||||
$values['x5t'] = Base64Url::encode($x5tsha1);
|
||||
$values['x5t#256'] = Base64Url::encode($x5tsha256);
|
||||
|
||||
return $values;
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException('Unable to load the certificate');
|
||||
}
|
||||
|
||||
public static function loadFromKeyFile(string $file, ?string $password = null): array
|
||||
{
|
||||
$content = file_get_contents($file);
|
||||
if (!is_string($content)) {
|
||||
throw new InvalidArgumentException('Unable to load the key from the file.');
|
||||
}
|
||||
|
||||
return self::loadFromKey($content, $password);
|
||||
}
|
||||
|
||||
public static function loadFromKey(string $key, ?string $password = null): array
|
||||
{
|
||||
try {
|
||||
return self::loadKeyFromDER($key, $password);
|
||||
} catch (Throwable $e) {
|
||||
return self::loadKeyFromPEM($key, $password);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Be careful! The certificate chain is loaded, but it is NOT VERIFIED by any mean!
|
||||
* It is mandatory to verify the root CA or intermediate CA are trusted.
|
||||
* If not done, it may lead to potential security issues.
|
||||
*
|
||||
* @throws InvalidArgumentException if the certificate chain is empty
|
||||
* @throws InvalidArgumentException if the OpenSSL extension is not available
|
||||
*/
|
||||
public static function loadFromX5C(array $x5c): array
|
||||
{
|
||||
if (0 === count($x5c)) {
|
||||
throw new InvalidArgumentException('The certificate chain is empty');
|
||||
}
|
||||
foreach ($x5c as $id => $cert) {
|
||||
$x5c[$id] = '-----BEGIN CERTIFICATE-----'.PHP_EOL.chunk_split($cert, 64, PHP_EOL).'-----END CERTIFICATE-----';
|
||||
$x509 = openssl_x509_read($x5c[$id]);
|
||||
if (false === $x509) {
|
||||
throw new InvalidArgumentException('Unable to load the certificate chain');
|
||||
}
|
||||
$parsed = openssl_x509_parse($x509);
|
||||
if (false === $parsed) {
|
||||
throw new InvalidArgumentException('Unable to load the certificate chain');
|
||||
}
|
||||
}
|
||||
|
||||
return self::loadKeyFromCertificate(reset($x5c));
|
||||
}
|
||||
|
||||
private static function loadKeyFromDER(string $der, ?string $password = null): array
|
||||
{
|
||||
$pem = self::convertDerToPem($der);
|
||||
|
||||
return self::loadKeyFromPEM($pem, $password);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the OpenSSL extension is not available
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
*/
|
||||
private static function loadKeyFromPEM(string $pem, ?string $password = null): array
|
||||
{
|
||||
if (1 === preg_match('#DEK-Info: (.+),(.+)#', $pem, $matches)) {
|
||||
$pem = self::decodePem($pem, $matches, $password);
|
||||
}
|
||||
|
||||
if (!extension_loaded('openssl')) {
|
||||
throw new RuntimeException('Please install the OpenSSL extension');
|
||||
}
|
||||
self::sanitizePEM($pem);
|
||||
$res = openssl_pkey_get_private($pem);
|
||||
if (false === $res) {
|
||||
$res = openssl_pkey_get_public($pem);
|
||||
}
|
||||
if (false === $res) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
$details = openssl_pkey_get_details($res);
|
||||
if (!is_array($details) || !array_key_exists('type', $details)) {
|
||||
throw new InvalidArgumentException('Unable to get details of the key');
|
||||
}
|
||||
|
||||
switch ($details['type']) {
|
||||
case OPENSSL_KEYTYPE_EC:
|
||||
$ec_key = ECKey::createFromPEM($pem);
|
||||
|
||||
return $ec_key->toArray();
|
||||
|
||||
case OPENSSL_KEYTYPE_RSA:
|
||||
$rsa_key = RSAKey::createFromPEM($pem);
|
||||
|
||||
return $rsa_key->toArray();
|
||||
|
||||
default:
|
||||
throw new InvalidArgumentException('Unsupported key type');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method modifies the PEM to get 64 char lines and fix bug with old OpenSSL versions.
|
||||
*/
|
||||
private static function sanitizePEM(string &$pem): void
|
||||
{
|
||||
preg_match_all('#(-.*-)#', $pem, $matches, PREG_PATTERN_ORDER);
|
||||
$ciphertext = preg_replace('#-.*-|\r|\n| #', '', $pem);
|
||||
|
||||
$pem = $matches[0][0].PHP_EOL;
|
||||
$pem .= chunk_split($ciphertext, 64, PHP_EOL);
|
||||
$pem .= $matches[0][1].PHP_EOL;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string[] $matches
|
||||
*
|
||||
* @throws InvalidArgumentException if the password to decrypt the key is not provided
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
*/
|
||||
private static function decodePem(string $pem, array $matches, ?string $password = null): string
|
||||
{
|
||||
if (null === $password) {
|
||||
throw new InvalidArgumentException('Password required for encrypted keys.');
|
||||
}
|
||||
|
||||
$iv = pack('H*', trim($matches[2]));
|
||||
$iv_sub = mb_substr($iv, 0, 8, '8bit');
|
||||
$symkey = pack('H*', md5($password.$iv_sub));
|
||||
$symkey .= pack('H*', md5($symkey.$password.$iv_sub));
|
||||
$key = preg_replace('#^(?:Proc-Type|DEK-Info): .*#m', '', $pem);
|
||||
$ciphertext = base64_decode(preg_replace('#-.*-|\r|\n#', '', $key), true);
|
||||
if (!is_string($ciphertext)) {
|
||||
throw new InvalidArgumentException('Unable to encode the data.');
|
||||
}
|
||||
|
||||
$decoded = openssl_decrypt($ciphertext, mb_strtolower($matches[1]), $symkey, OPENSSL_RAW_DATA, $iv);
|
||||
if (false === $decoded) {
|
||||
throw new RuntimeException('Unable to decrypt the key');
|
||||
}
|
||||
$number = preg_match_all('#-{5}.*-{5}#', $pem, $result);
|
||||
if (2 !== $number) {
|
||||
throw new InvalidArgumentException('Unable to load the key');
|
||||
}
|
||||
|
||||
$pem = $result[0][0].PHP_EOL;
|
||||
$pem .= chunk_split(base64_encode($decoded), 64);
|
||||
$pem .= $result[0][1].PHP_EOL;
|
||||
|
||||
return $pem;
|
||||
}
|
||||
|
||||
private static function convertDerToPem(string $der_data): string
|
||||
{
|
||||
$pem = chunk_split(base64_encode($der_data), 64, PHP_EOL);
|
||||
|
||||
return '-----BEGIN CERTIFICATE-----'.PHP_EOL.$pem.'-----END CERTIFICATE-----'.PHP_EOL;
|
||||
}
|
||||
}
|
263
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/KeyConverter/RSAKey.php
vendored
Normal file
263
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/KeyConverter/RSAKey.php
vendored
Normal file
@ -0,0 +1,263 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement\KeyConverter;
|
||||
|
||||
use function array_key_exists;
|
||||
use Base64Url\Base64Url;
|
||||
use function extension_loaded;
|
||||
use function in_array;
|
||||
use InvalidArgumentException;
|
||||
use function is_array;
|
||||
use Jose\Component\Core\JWK;
|
||||
use Jose\Component\Core\Util\BigInteger;
|
||||
use RuntimeException;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class RSAKey
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $values = [];
|
||||
|
||||
/**
|
||||
* RSAKey constructor.
|
||||
*/
|
||||
private function __construct(array $data)
|
||||
{
|
||||
$this->loadJWK($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return RSAKey
|
||||
*/
|
||||
public static function createFromKeyDetails(array $details): self
|
||||
{
|
||||
$values = ['kty' => 'RSA'];
|
||||
$keys = [
|
||||
'n' => 'n',
|
||||
'e' => 'e',
|
||||
'd' => 'd',
|
||||
'p' => 'p',
|
||||
'q' => 'q',
|
||||
'dp' => 'dmp1',
|
||||
'dq' => 'dmq1',
|
||||
'qi' => 'iqmp',
|
||||
];
|
||||
foreach ($details as $key => $value) {
|
||||
if (in_array($key, $keys, true)) {
|
||||
$value = Base64Url::encode($value);
|
||||
$values[array_search($key, $keys, true)] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return new self($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws RuntimeException if the extension OpenSSL is not available
|
||||
* @throws InvalidArgumentException if the key cannot be loaded
|
||||
*
|
||||
* @return RSAKey
|
||||
*/
|
||||
public static function createFromPEM(string $pem): self
|
||||
{
|
||||
if (!extension_loaded('openssl')) {
|
||||
throw new RuntimeException('Please install the OpenSSL extension');
|
||||
}
|
||||
$res = openssl_pkey_get_private($pem);
|
||||
if (false === $res) {
|
||||
$res = openssl_pkey_get_public($pem);
|
||||
}
|
||||
if (false === $res) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
$details = openssl_pkey_get_details($res);
|
||||
if (!is_array($details) || !isset($details['rsa'])) {
|
||||
throw new InvalidArgumentException('Unable to load the key.');
|
||||
}
|
||||
|
||||
return self::createFromKeyDetails($details['rsa']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return RSAKey
|
||||
*/
|
||||
public static function createFromJWK(JWK $jwk): self
|
||||
{
|
||||
return new self($jwk->all());
|
||||
}
|
||||
|
||||
public function isPublic(): bool
|
||||
{
|
||||
return !array_key_exists('d', $this->values);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param RSAKey $private
|
||||
*
|
||||
* @return RSAKey
|
||||
*/
|
||||
public static function toPublic(self $private): self
|
||||
{
|
||||
$data = $private->toArray();
|
||||
$keys = ['p', 'd', 'q', 'dp', 'dq', 'qi'];
|
||||
foreach ($keys as $key) {
|
||||
if (array_key_exists($key, $data)) {
|
||||
unset($data[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
return new self($data);
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return $this->values;
|
||||
}
|
||||
|
||||
public function toJwk(): JWK
|
||||
{
|
||||
return new JWK($this->values);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will try to add Chinese Remainder Theorem (CRT) parameters.
|
||||
* With those primes, the decryption process is really fast.
|
||||
*/
|
||||
public function optimize(): void
|
||||
{
|
||||
if (array_key_exists('d', $this->values)) {
|
||||
$this->populateCRT();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key is invalid or not an RSA key
|
||||
*/
|
||||
private function loadJWK(array $jwk): void
|
||||
{
|
||||
if (!array_key_exists('kty', $jwk)) {
|
||||
throw new InvalidArgumentException('The key parameter "kty" is missing.');
|
||||
}
|
||||
if ('RSA' !== $jwk['kty']) {
|
||||
throw new InvalidArgumentException('The JWK is not a RSA key.');
|
||||
}
|
||||
|
||||
$this->values = $jwk;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method adds Chinese Remainder Theorem (CRT) parameters if primes 'p' and 'q' are available.
|
||||
* If 'p' and 'q' are missing, they are computed and added to the key data.
|
||||
*/
|
||||
private function populateCRT(): void
|
||||
{
|
||||
if (!array_key_exists('p', $this->values) && !array_key_exists('q', $this->values)) {
|
||||
$d = BigInteger::createFromBinaryString(Base64Url::decode($this->values['d']));
|
||||
$e = BigInteger::createFromBinaryString(Base64Url::decode($this->values['e']));
|
||||
$n = BigInteger::createFromBinaryString(Base64Url::decode($this->values['n']));
|
||||
|
||||
[$p, $q] = $this->findPrimeFactors($d, $e, $n);
|
||||
$this->values['p'] = Base64Url::encode($p->toBytes());
|
||||
$this->values['q'] = Base64Url::encode($q->toBytes());
|
||||
}
|
||||
|
||||
if (array_key_exists('dp', $this->values) && array_key_exists('dq', $this->values) && array_key_exists('qi', $this->values)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$one = BigInteger::createFromDecimal(1);
|
||||
$d = BigInteger::createFromBinaryString(Base64Url::decode($this->values['d']));
|
||||
$p = BigInteger::createFromBinaryString(Base64Url::decode($this->values['p']));
|
||||
$q = BigInteger::createFromBinaryString(Base64Url::decode($this->values['q']));
|
||||
|
||||
$this->values['dp'] = Base64Url::encode($d->mod($p->subtract($one))->toBytes());
|
||||
$this->values['dq'] = Base64Url::encode($d->mod($q->subtract($one))->toBytes());
|
||||
$this->values['qi'] = Base64Url::encode($q->modInverse($p)->toBytes());
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws RuntimeException if the prime factors cannot be found
|
||||
*
|
||||
* @return BigInteger[]
|
||||
*/
|
||||
private function findPrimeFactors(BigInteger $d, BigInteger $e, BigInteger $n): array
|
||||
{
|
||||
$zero = BigInteger::createFromDecimal(0);
|
||||
$one = BigInteger::createFromDecimal(1);
|
||||
$two = BigInteger::createFromDecimal(2);
|
||||
|
||||
$k = $d->multiply($e)->subtract($one);
|
||||
|
||||
if ($k->isEven()) {
|
||||
$r = $k;
|
||||
$t = $zero;
|
||||
|
||||
do {
|
||||
$r = $r->divide($two);
|
||||
$t = $t->add($one);
|
||||
} while ($r->isEven());
|
||||
|
||||
$found = false;
|
||||
$y = null;
|
||||
|
||||
for ($i = 1; $i <= 100; ++$i) {
|
||||
$g = BigInteger::random($n->subtract($one));
|
||||
$y = $g->modPow($r, $n);
|
||||
|
||||
if ($y->equals($one) || $y->equals($n->subtract($one))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for ($j = $one; $j->lowerThan($t->subtract($one)); $j = $j->add($one)) {
|
||||
$x = $y->modPow($two, $n);
|
||||
|
||||
if ($x->equals($one)) {
|
||||
$found = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if ($x->equals($n->subtract($one))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$y = $x;
|
||||
}
|
||||
|
||||
$x = $y->modPow($two, $n);
|
||||
if ($x->equals($one)) {
|
||||
$found = true;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (null === $y) {
|
||||
throw new InvalidArgumentException('Unable to find prime factors.');
|
||||
}
|
||||
if (true === $found) {
|
||||
$p = $y->subtract($one)->gcd($n);
|
||||
$q = $n->divide($p);
|
||||
|
||||
return [$p, $q];
|
||||
}
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException('Unable to find prime factors.');
|
||||
}
|
||||
}
|
21
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/LICENSE
vendored
Normal file
21
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/LICENSE
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2019 Spomky-Labs
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
15
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/README.md
vendored
Normal file
15
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/README.md
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
PHP JWT Key Management Component
|
||||
================================
|
||||
|
||||
This repository is a sub repository of [the JWT Framework](https://github.com/web-token/jwt-framework) project and is READ ONLY.
|
||||
|
||||
**Please do not submit any Pull Request here.**
|
||||
You should go to [the main repository](https://github.com/web-token/jwt-framework) instead.
|
||||
|
||||
# Documentation
|
||||
|
||||
The official documentation is available as https://web-token.spomky-labs.com/
|
||||
|
||||
# Licence
|
||||
|
||||
This software is release under [MIT licence](LICENSE).
|
58
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/UrlKeySetFactory.php
vendored
Normal file
58
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/UrlKeySetFactory.php
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement;
|
||||
|
||||
use Psr\Http\Client\ClientInterface;
|
||||
use Psr\Http\Message\RequestFactoryInterface;
|
||||
use RuntimeException;
|
||||
|
||||
abstract class UrlKeySetFactory
|
||||
{
|
||||
/**
|
||||
* @var ClientInterface
|
||||
*/
|
||||
private $client;
|
||||
|
||||
/**
|
||||
* @var RequestFactoryInterface
|
||||
*/
|
||||
private $requestFactory;
|
||||
|
||||
/**
|
||||
* UrlKeySetFactory constructor.
|
||||
*/
|
||||
public function __construct(ClientInterface $client, RequestFactoryInterface $requestFactory)
|
||||
{
|
||||
$this->client = $client;
|
||||
$this->requestFactory = $requestFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws RuntimeException if the response content is invalid
|
||||
*/
|
||||
protected function getContent(string $url, array $header = []): string
|
||||
{
|
||||
$request = $this->requestFactory->createRequest('GET', $url);
|
||||
foreach ($header as $k => $v) {
|
||||
$request = $request->withHeader($k, $v);
|
||||
}
|
||||
$response = $this->client->sendRequest($request);
|
||||
|
||||
if ($response->getStatusCode() >= 400) {
|
||||
throw new RuntimeException('Unable to get the key set.', $response->getStatusCode());
|
||||
}
|
||||
|
||||
return $response->getBody()->getContents();
|
||||
}
|
||||
}
|
56
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/X5UFactory.php
vendored
Normal file
56
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/X5UFactory.php
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 Spomky-Labs
|
||||
*
|
||||
* This software may be modified and distributed under the terms
|
||||
* of the MIT license. See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Jose\Component\KeyManagement;
|
||||
|
||||
use function is_array;
|
||||
use function is_string;
|
||||
use Jose\Component\Core\JWK;
|
||||
use Jose\Component\Core\JWKSet;
|
||||
use Jose\Component\Core\Util\JsonConverter;
|
||||
use Jose\Component\KeyManagement\KeyConverter\KeyConverter;
|
||||
use RuntimeException;
|
||||
|
||||
class X5UFactory extends UrlKeySetFactory
|
||||
{
|
||||
/**
|
||||
* This method will try to fetch the url a retrieve the key set.
|
||||
* Throws an exception in case of failure.
|
||||
*
|
||||
* @throws RuntimeException if the response content is invalid
|
||||
*/
|
||||
public function loadFromUrl(string $url, array $header = []): JWKSet
|
||||
{
|
||||
$content = $this->getContent($url, $header);
|
||||
$data = JsonConverter::decode($content);
|
||||
if (!is_array($data)) {
|
||||
throw new RuntimeException('Invalid content.');
|
||||
}
|
||||
|
||||
$keys = [];
|
||||
foreach ($data as $kid => $cert) {
|
||||
if (false === mb_strpos($cert, '-----BEGIN CERTIFICATE-----')) {
|
||||
$cert = '-----BEGIN CERTIFICATE-----'.PHP_EOL.$cert.PHP_EOL.'-----END CERTIFICATE-----';
|
||||
}
|
||||
$jwk = KeyConverter::loadKeyFromCertificate($cert);
|
||||
if (is_string($kid)) {
|
||||
$jwk['kid'] = $kid;
|
||||
$keys[$kid] = new JWK($jwk);
|
||||
} else {
|
||||
$keys[] = new JWK($jwk);
|
||||
}
|
||||
}
|
||||
|
||||
return new JWKSet($keys);
|
||||
}
|
||||
}
|
34
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/composer.json
vendored
Normal file
34
wp-content/upgrade-temp-backup/plugins/wp-webauthn/vendor/web-token/jwt-key-mgmt/composer.json
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "web-token/jwt-key-mgmt",
|
||||
"description": "Key Management component of the JWT Framework.",
|
||||
"type": "library",
|
||||
"license": "MIT",
|
||||
"keywords": ["JWS", "JWT", "JWE", "JWA", "JWK", "JWKSet", "Jot", "Jose", "RFC7515", "RFC7516", "RFC7517", "RFC7518", "RFC7519", "RFC7520", "Bundle", "Symfony"],
|
||||
"homepage": "https://github.com/web-token",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Florent Morselli",
|
||||
"homepage": "https://github.com/Spomky"
|
||||
},{
|
||||
"name": "All contributors",
|
||||
"homepage": "https://github.com/web-token/jwt-key-mgmt/contributors"
|
||||
}
|
||||
],
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Jose\\Component\\KeyManagement\\": ""
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"ext-openssl": "*",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-client": "^1.0",
|
||||
"web-token/jwt-core": "^2.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-sodium": "Sodium is required for OKP key creation, EdDSA signature algorithm and ECDH-ES key encryption with OKP keys",
|
||||
"web-token/jwt-util-ecc": "To use EC key analyzers.",
|
||||
"php-http/message-factory": "To enable JKU/X5U support.",
|
||||
"php-http/httplug": "To enable JKU/X5U support."
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user