UNPKG

cloudstudio

Version:

Run VS Code on a remote server.

1 lines 231 kB
(()=>{var e={959:(e,t,r)=>{var i;function n(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw new TypeError("callback not provided");return new Promise((function(r,i){n(e,t||{},(function(e,t){e?i(e):r(t)}))}))}i(e,t||{},(function(e,i){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,i=!1),r(e,i)}))}r(747),i="win32"===process.platform||global.TESTING_WINDOWS?r(429):r(601),e.exports=n,n.sync=function(e,t){try{return i.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e}}},601:(e,t,r)=>{e.exports=n,n.sync=function(e,t){return s(i.statSync(e),t)};var i=r(747);function n(e,t,r){i.stat(e,(function(e,i){r(e,!e&&s(i,t))}))}function s(e,t){return e.isFile()&&function(e,t){var r=e.mode,i=e.uid,n=e.gid,s=void 0!==t.uid?t.uid:process.getuid&&process.getuid(),a=void 0!==t.gid?t.gid:process.getgid&&process.getgid(),o=parseInt("100",8),c=parseInt("010",8);return r&parseInt("001",8)||r&c&&n===a||r&o&&i===s||r&(o|c)&&0===s}(e,t)}},429:(e,t,r)=>{e.exports=s,s.sync=function(e,t){return n(i.statSync(e),e,t)};var i=r(747);function n(e,t,r){return!(!e.isSymbolicLink()&&!e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r)return!0;if(-1!==(r=r.split(";")).indexOf(""))return!0;for(var i=0;i<r.length;i++){var n=r[i].toLowerCase();if(n&&e.substr(-n.length).toLowerCase()===n)return!0}return!1}(t,r)}function s(e,t,r){i.stat(e,(function(i,s){r(i,!i&&n(s,e,t))}))}},800:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.loadMessageBundle=t.localize=t.format=t.setPseudo=t.isPseudo=t.isString=t.isNumber=t.isDefined=t.BundleFormat=t.MessageFormat=void 0;var i,n,s,a=r(926);function o(e){return void 0!==e}(s=t.MessageFormat||(t.MessageFormat={})).file="file",s.bundle="bundle",s.both="both",(n=t.BundleFormat||(t.BundleFormat={})).standalone="standalone",n.languagePack="languagePack",function(e){e.is=function(e){var t=e;return t&&o(t.key)&&o(t.comment)}}(i||(i={})),t.isDefined=o;var c=Object.prototype.toString;function d(e,r){return t.isPseudo&&(e="["+e.replace(/[aouei]/g,"$&$&")+"]"),0===r.length?e:e.replace(/\{(\d+)\}/g,(function(e,t){var i=t[0],n=r[i],s=e;return"string"==typeof n?s=n:"number"!=typeof n&&"boolean"!=typeof n&&null!=n||(s=String(n)),s}))}t.isNumber=function(e){return"[object Number]"===c.call(e)},t.isString=function(e){return"[object String]"===c.call(e)},t.isPseudo=!1,t.setPseudo=function(e){t.isPseudo=e},t.format=d,t.localize=function(e,t){for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];return d(t,r)},t.loadMessageBundle=function(e){return(0,a.default)().loadMessageBundle(e)},t.config=function(e){return(0,a.default)().config(e)}},926:(e,t)=>{"use strict";var r;function i(){if(void 0===r)throw new Error("No runtime abstraction layer installed");return r}Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.install=function(e){if(void 0===e)throw new Error("No runtime abstraction layer provided");r=e}}(i||(i={})),t.default=i},591:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.loadMessageBundle=t.BundleFormat=t.MessageFormat=void 0;var i,n,s=r(622),a=r(747),o=r(926),c=r(800),d=r(800);function l(e){return JSON.parse(a.readFileSync(e,"utf8"))}function g(e){return function(t,r){for(var i=[],n=2;n<arguments.length;n++)i[n-2]=arguments[n];return(0,c.isNumber)(t)?t>=e.length?void console.error("Broken localize call found. Index out of bounds. Stacktrace is\n: ".concat(new Error("").stack)):(0,c.format)(e[t],i):(0,c.isString)(r)?(console.warn("Message ".concat(r," didn't get externalized correctly.")),(0,c.format)(r,i)):void console.error("Broken localize call found. Stacktrace is\n: ".concat(new Error("").stack))}}function u(e,t){return i[e]=t,t}function p(e){try{return function(e){var t=l(s.join(e,"nls.metadata.json")),r=Object.create(null);for(var i in t){var n=t[i];r[i]=n.messages}return r}(e)}catch(e){return void console.log("Generating default bundle from meta data failed.",e)}}function m(e,t){var r;if(!0===n.languagePackSupport&&void 0!==n.cacheRoot&&void 0!==n.languagePackId&&void 0!==n.translationsConfigFile&&void 0!==n.translationsConfig)try{r=function(e,t){var r,i,o,d=s.join(n.cacheRoot,"".concat(e.id,"-").concat(e.hash,".json")),g=!1,u=!1;try{return r=JSON.parse(a.readFileSync(d,{encoding:"utf8",flag:"r"})),i=d,o=new Date,a.utimes(i,o,o,(function(){})),r}catch(e){if("ENOENT"===e.code)u=!0;else{if(!(e instanceof SyntaxError))throw e;console.log("Syntax error parsing message bundle: ".concat(e.message,".")),a.unlink(d,(function(e){e&&console.error("Deleting corrupted bundle ".concat(d," failed."))})),g=!0}}if(!(r=function(e,t){var r=n.translationsConfig[e.id];if(r){var i=l(r).contents,a=l(s.join(t,"nls.metadata.json")),o=Object.create(null);for(var d in a){var g=a[d],u=i["".concat(e.outDir,"/").concat(d)];if(u){for(var p=[],m=0;m<g.keys.length;m++){var _=g.keys[m],$=u[(0,c.isString)(_)?_:_.key];void 0===$&&($=g.messages[m]),p.push($)}o[d]=p}else o[d]=g.messages}return o}}(e,t))||g)return r;if(u)try{a.writeFileSync(d,JSON.stringify(r),{encoding:"utf8",flag:"wx"})}catch(e){if("EEXIST"===e.code)return r;throw e}return r}(e,t)}catch(e){console.log("Load or create bundle failed ",e)}if(!r){if(n.languagePackSupport)return p(t);var i=function(e){for(var t=n.language;t;){var r=s.join(e,"nls.bundle.".concat(t,".json"));if(a.existsSync(r))return r;var i=t.lastIndexOf("-");t=i>0?t.substring(0,i):void 0}if(void 0===t&&(r=s.join(e,"nls.bundle.json"),a.existsSync(r)))return r}(t);if(i)try{return l(i)}catch(e){console.log("Loading in the box message bundle failed.",e)}r=p(t)}return r}function _(e){if(!e)return c.localize;var t=s.extname(e);if(t&&(e=e.substr(0,e.length-t.length)),n.messageFormat===c.MessageFormat.both||n.messageFormat===c.MessageFormat.bundle){var r=function(e){for(var t,r=s.dirname(e);t=s.join(r,"nls.metadata.header.json"),!a.existsSync(t);){var i=s.dirname(r);if(i===r){t=void 0;break}r=i}return t}(e);if(r){var o=s.dirname(r),d=i[o];if(void 0===d)try{var p=JSON.parse(a.readFileSync(r,"utf8"));try{var _=m(p,o);d=u(o,_?{header:p,nlsBundle:_}:null)}catch(e){console.error("Failed to load nls bundle",e),d=u(o,null)}}catch(e){console.error("Failed to read header file",e),d=u(o,null)}if(d){var $=e.substr(o.length+1).replace(/\\/g,"/"),f=d.nlsBundle[$];return void 0===f?(console.error("Messages for file ".concat(e," not found. See console for details.")),function(){return"Messages not found."}):g(f)}}}if(n.messageFormat===c.MessageFormat.both||n.messageFormat===c.MessageFormat.file)try{var h=l(function(e){var t;if(n.cacheLanguageResolution&&t)t=t;else{if(c.isPseudo||!n.language)t=".nls.json";else for(var r=n.language;r;){var i=".nls."+r+".json";if(a.existsSync(e+i)){t=i;break}var s=r.lastIndexOf("-");s>0?r=r.substring(0,s):(t=".nls.json",r=null)}n.cacheLanguageResolution&&(t=t)}return e+t}(e));return Array.isArray(h)?g(h):(0,c.isDefined)(h.messages)&&(0,c.isDefined)(h.keys)?g(h.messages):(console.error("String bundle '".concat(e,"' uses an unsupported format.")),function(){return"File bundle has unsupported format. See console for details"})}catch(e){"ENOENT"!==e.code&&console.error("Failed to load single file bundle",e)}return console.error("Failed to load message bundle for file ".concat(e)),function(){return"Failed to load message bundle. See console for details."}}function $(e){return e&&((0,c.isString)(e.locale)&&(n.locale=e.locale.toLowerCase(),n.language=n.locale,i=Object.create(null)),void 0!==e.messageFormat&&(n.messageFormat=e.messageFormat),e.bundleFormat===c.BundleFormat.standalone&&!0===n.languagePackSupport&&(n.languagePackSupport=!1)),(0,c.setPseudo)("pseudo"===n.locale),_}Object.defineProperty(t,"MessageFormat",{enumerable:!0,get:function(){return d.MessageFormat}}),Object.defineProperty(t,"BundleFormat",{enumerable:!0,get:function(){return d.BundleFormat}}),function(){if(n={locale:void 0,language:void 0,languagePackSupport:!1,cacheLanguageResolution:!0,messageFormat:c.MessageFormat.bundle},(0,c.isString)(process.env.VSCODE_NLS_CONFIG))try{var e=JSON.parse(process.env.VSCODE_NLS_CONFIG),t=void 0;if(e.availableLanguages){var r=e.availableLanguages["*"];(0,c.isString)(r)&&(t=r)}if((0,c.isString)(e.locale)&&(n.locale=e.locale.toLowerCase()),void 0===t?n.language=n.locale:"en"!==t&&(n.language=t),function(e){return!0===e||!1===e}(e._languagePackSupport)&&(n.languagePackSupport=e._languagePackSupport),(0,c.isString)(e._cacheRoot)&&(n.cacheRoot=e._cacheRoot),(0,c.isString)(e._languagePackId)&&(n.languagePackId=e._languagePackId),(0,c.isString)(e._translationsConfigFile)){n.translationsConfigFile=e._translationsConfigFile;try{n.translationsConfig=l(n.translationsConfigFile)}catch(t){if(e._corruptedFile){var o=s.dirname(e._corruptedFile);a.exists(o,(function(t){t&&a.writeFile(e._corruptedFile,"corrupted","utf8",(function(e){console.error(e)}))}))}}}}catch(e){}(0,c.setPseudo)("pseudo"===n.locale),i=Object.create(null)}(),t.loadMessageBundle=_,t.config=$,o.default.install(Object.freeze({loadMessageBundle:_,config:$}))},806:(e,t,r)=>{const i="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,n=r(622),s=i?";":":",a=r(959),o=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),c=(e,t)=>{const r=t.colon||s,n=e.match(/\//)||i&&e.match(/\\/)?[""]:[...i?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],a=i?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=i?a.split(r):[""];return i&&-1!==e.indexOf(".")&&""!==o[0]&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:a}},d=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});const{pathEnv:i,pathExt:s,pathExtExe:d}=c(e,t),l=[],g=r=>new Promise(((s,a)=>{if(r===i.length)return t.all&&l.length?s(l):a(o(e));const c=i[r],d=/^".*"$/.test(c)?c.slice(1,-1):c,g=n.join(d,e),p=!d&&/^\.[\\\/]/.test(e)?e.slice(0,2)+g:g;s(u(p,r,0))})),u=(e,r,i)=>new Promise(((n,o)=>{if(i===s.length)return n(g(r+1));const c=s[i];a(e+c,{pathExt:d},((s,a)=>{if(!s&&a){if(!t.all)return n(e+c);l.push(e+c)}return n(u(e,r,i+1))}))}));return r?g(0).then((e=>r(null,e)),r):g(0)};e.exports=d,d.sync=(e,t)=>{t=t||{};const{pathEnv:r,pathExt:i,pathExtExe:s}=c(e,t),d=[];for(let o=0;o<r.length;o++){const c=r[o],l=/^".*"$/.test(c)?c.slice(1,-1):c,g=n.join(l,e),u=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+g:g;for(let e=0;e<i.length;e++){const r=u+i[e];try{if(a.sync(r,{pathExt:s})){if(!t.all)return r;d.push(r)}}catch(e){}}}if(t.all&&d.length)return d;if(t.nothrow)return null;throw o(e)}},506:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=r(549),n=r(669),s=r(183);t.default=class{provideCompletionItems(e,t,r,a){const o=[];if(!i.workspace.getConfiguration("php").get("suggest.basic",!0))return Promise.resolve(o);let c=e.getWordRangeAtPosition(t);const d=c?e.getText(c):"";if(c||(c=new i.Range(t,t)),">"===a.triggerCharacter){const r=new i.Position(t.line,Math.max(0,t.character-2));if("->"!==e.getText(new i.Range(r,t)))return Promise.resolve(o)}const l={},g=function(e,t,r){const n=new i.CompletionItem(t);return n.kind=e,r&&(r.description&&(n.documentation=r.description),r.signature&&(n.detail=r.signature)),n},u=e=>0===d.length||e.length>=d.length&&e.substr(0,d.length)===d;if(u("php")&&c.start.character>=2){const r=new i.Position(c.start.line,c.start.character-2);if("<?"===e.getText(new i.Range(r,c.start))){const e=g(i.CompletionItemKind.Class,"<?php",null);return e.textEdit=new i.TextEdit(new i.Range(r,t),"<?php"),o.push(e),Promise.resolve(o)}}for(const e in n.globalvariables)n.globalvariables.hasOwnProperty(e)&&u(e)&&(l[e]=!0,o.push(g(i.CompletionItemKind.Variable,e,n.globalvariables[e])));for(const e in s.globalfunctions)s.globalfunctions.hasOwnProperty(e)&&u(e)&&(l[e]=!0,o.push(g(i.CompletionItemKind.Function,e,s.globalfunctions[e])));for(const e in n.compiletimeconstants)n.compiletimeconstants.hasOwnProperty(e)&&u(e)&&(l[e]=!0,o.push(g(i.CompletionItemKind.Field,e,n.compiletimeconstants[e])));for(const e in n.keywords)n.keywords.hasOwnProperty(e)&&u(e)&&(l[e]=!0,o.push(g(i.CompletionItemKind.Keyword,e,n.keywords[e])));const p=e.getText();if("$"===d[0]){const e=/\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/g;let t=null;for(;t=e.exec(p);){const e=t[0];l[e]||(l[e]=!0,o.push(g(i.CompletionItemKind.Variable,e,null)))}}const m=/function\s+([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*\(/g;let _=null;for(;_=m.exec(p);){const e=_[1];l[e]||(l[e]=!0,o.push(g(i.CompletionItemKind.Function,e,null)))}return Promise.resolve(o)}}},610:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=r(549),n=r(720),s=r(669),a=r(183);t.default=class{provideHover(e,t,r){if(!i.workspace.getConfiguration("php").get("suggest.basic",!0))return;const o=e.getWordRangeAtPosition(t);if(!o)return;const c=e.getText(o),d=a.globalfunctions[c]||s.compiletimeconstants[c]||s.globalvariables[c]||s.keywords[c];if(d&&d.description){const e=c+(d.signature||""),t=[(0,n.textToMarkedString)(d.description),{language:"php",value:e}];return new i.Hover(t,o)}}}},183:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.globalfunctions=void 0,t.globalfunctions={debug_backtrace:{description:"Generates a backtrace",signature:"([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]]): array"},debug_print_backtrace:{description:"Prints a backtrace",signature:"([ int $options = 0 [, int $limit = 0 ]]): void"},error_clear_last:{description:"Clear the most recent error",signature:"(void): void"},error_get_last:{description:"Get the last occurred error",signature:"(void): array"},error_log:{description:"Send an error message to the defined error handling routines",signature:"( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]]): bool"},error_reporting:{description:"Sets which PHP errors are reported",signature:"([ int $level ]): int"},restore_error_handler:{description:"Restores the previous error handler function",signature:"(void): bool"},restore_exception_handler:{description:"Restores the previously defined exception handler function",signature:"(void): bool"},set_error_handler:{description:"Sets a user-defined error handler function",signature:"( callable $error_handler [, int $error_types = E_ALL | E_STRICT ]): mixed"},set_exception_handler:{description:"Sets a user-defined exception handler function",signature:"( callable $exception_handler ): callable"},trigger_error:{description:"Generates a user-level error/warning/notice message",signature:"( string $error_msg [, int $error_type = E_USER_NOTICE ]): bool"},user_error:{description:"Alias of trigger_error"},opcache_compile_file:{description:"Compiles and caches a PHP script without executing it",signature:"( string $file ): bool"},opcache_get_configuration:{description:"Get configuration information about the cache",signature:"(void): array"},opcache_get_status:{description:"Get status information about the cache",signature:"([ bool $get_scripts ]): array"},opcache_invalidate:{description:"Invalidates a cached script",signature:"( string $script [, bool $force ]): bool"},opcache_is_script_cached:{description:"Tells whether a script is cached in OPCache",signature:"( string $file ): bool"},opcache_reset:{description:"Resets the contents of the opcode cache",signature:"(void): bool"},flush:{description:"Flush system output buffer",signature:"(void): void"},ob_clean:{description:"Clean (erase) the output buffer",signature:"(void): void"},ob_end_clean:{description:"Clean (erase) the output buffer and turn off output buffering",signature:"(void): bool"},ob_end_flush:{description:"Flush (send) the output buffer and turn off output buffering",signature:"(void): bool"},ob_flush:{description:"Flush (send) the output buffer",signature:"(void): void"},ob_get_clean:{description:"Get current buffer contents and delete current output buffer",signature:"(void): string"},ob_get_contents:{description:"Return the contents of the output buffer",signature:"(void): string"},ob_get_flush:{description:"Flush the output buffer, return it as a string and turn off output buffering",signature:"(void): string"},ob_get_length:{description:"Return the length of the output buffer",signature:"(void): int"},ob_get_level:{description:"Return the nesting level of the output buffering mechanism",signature:"(void): int"},ob_get_status:{description:"Get status of output buffers",signature:"([ bool $full_status = FALSE ]): array"},ob_gzhandler:{description:"ob_start callback function to gzip output buffer",signature:"( string $buffer , int $mode ): string"},ob_implicit_flush:{description:"Turn implicit flush on/off",signature:"([ int $flag = 1 ]): void"},ob_list_handlers:{description:"List all output handlers in use",signature:"(void): array"},ob_start:{description:"Turn on output buffering",signature:"([ callable $output_callback [, int $chunk_size = 0 [, int $flags ]]]): bool"},output_add_rewrite_var:{description:"Add URL rewriter values",signature:"( string $name , string $value ): bool"},output_reset_rewrite_vars:{description:"Reset URL rewriter values",signature:"(void): bool"},assert_options:{description:"Set/get the various assert flags",signature:"( int $what [, mixed $value ]): mixed"},assert:{description:"Checks if assertion is FALSE",signature:"( mixed $assertion [, string $description [, Throwable $exception ]]): bool"},cli_get_process_title:{description:"Returns the current process title",signature:"(void): string"},cli_set_process_title:{description:"Sets the process title",signature:"( string $title ): bool"},dl:{description:"Loads a PHP extension at runtime",signature:"( string $library ): bool"},extension_loaded:{description:"Find out whether an extension is loaded",signature:"( string $name ): bool"},gc_collect_cycles:{description:"Forces collection of any existing garbage cycles",signature:"(void): int"},gc_disable:{description:"Deactivates the circular reference collector",signature:"(void): void"},gc_enable:{description:"Activates the circular reference collector",signature:"(void): void"},gc_enabled:{description:"Returns status of the circular reference collector",signature:"(void): bool"},gc_mem_caches:{description:"Reclaims memory used by the Zend Engine memory manager",signature:"(void): int"},gc_status:{description:"Gets information about the garbage collector",signature:"(void): array"},get_cfg_var:{description:"Gets the value of a PHP configuration option",signature:"( string $option ): mixed"},get_current_user:{description:"Gets the name of the owner of the current PHP script",signature:"(void): string"},get_defined_constants:{description:"Returns an associative array with the names of all the constants and their values",signature:"([ bool $categorize ]): array"},get_extension_funcs:{description:"Returns an array with the names of the functions of a module",signature:"( string $module_name ): array"},get_include_path:{description:"Gets the current include_path configuration option",signature:"(void): string"},get_included_files:{description:"Returns an array with the names of included or required files",signature:"(void): array"},get_loaded_extensions:{description:"Returns an array with the names of all modules compiled and loaded",signature:"([ bool $zend_extensions ]): array"},get_magic_quotes_gpc:{description:"Gets the current configuration setting of magic_quotes_gpc",signature:"(void): bool"},get_magic_quotes_runtime:{description:"Gets the current active configuration setting of magic_quotes_runtime",signature:"(void): bool"},get_required_files:{description:"Alias of get_included_files"},get_resources:{description:"Returns active resources",signature:"([ string $type ]): resource"},getenv:{description:"Gets the value of an environment variable",signature:"( string $varname [, bool $local_only ]): array"},getlastmod:{description:"Gets time of last page modification",signature:"(void): int"},getmygid:{description:"Get PHP script owner's GID",signature:"(void): int"},getmyinode:{description:"Gets the inode of the current script",signature:"(void): int"},getmypid:{description:"Gets PHP's process ID",signature:"(void): int"},getmyuid:{description:"Gets PHP script owner's UID",signature:"(void): int"},getopt:{description:"Gets options from the command line argument list",signature:"( string $options [, array $longopts [, int $optind ]]): array"},getrusage:{description:"Gets the current resource usages",signature:"([ int $who = 0 ]): array"},ini_alter:{description:"Alias of ini_set"},ini_get_all:{description:"Gets all configuration options",signature:"([ string $extension [, bool $details ]]): array"},ini_get:{description:"Gets the value of a configuration option",signature:"( string $varname ): string"},ini_restore:{description:"Restores the value of a configuration option",signature:"( string $varname ): void"},ini_set:{description:"Sets the value of a configuration option",signature:"( string $varname , string $newvalue ): string"},magic_quotes_runtime:{description:"Alias of set_magic_quotes_runtime"},main:{description:"Dummy for main"},memory_get_peak_usage:{description:"Returns the peak of memory allocated by PHP",signature:"([ bool $real_usage ]): int"},memory_get_usage:{description:"Returns the amount of memory allocated to PHP",signature:"([ bool $real_usage ]): int"},php_ini_loaded_file:{description:"Retrieve a path to the loaded php.ini file",signature:"(void): string"},php_ini_scanned_files:{description:"Return a list of .ini files parsed from the additional ini dir",signature:"(void): string"},php_logo_guid:{description:"Gets the logo guid",signature:"(void): string"},php_sapi_name:{description:"Returns the type of interface between web server and PHP",signature:"(void): string"},php_uname:{description:"Returns information about the operating system PHP is running on",signature:'([ string $mode = "a" ]): string'},phpcredits:{description:"Prints out the credits for PHP",signature:"([ int $flag = CREDITS_ALL ]): bool"},phpinfo:{description:"Outputs information about PHP's configuration",signature:"([ int $what = INFO_ALL ]): bool"},phpversion:{description:"Gets the current PHP version",signature:"([ string $extension ]): string"},putenv:{description:"Sets the value of an environment variable",signature:"( string $setting ): bool"},restore_include_path:{description:"Restores the value of the include_path configuration option",signature:"(void): void"},set_include_path:{description:"Sets the include_path configuration option",signature:"( string $new_include_path ): string"},set_magic_quotes_runtime:{description:"Sets the current active configuration setting of magic_quotes_runtime",signature:"( bool $new_setting ): bool"},set_time_limit:{description:"Limits the maximum execution time",signature:"( int $seconds ): bool"},sys_get_temp_dir:{description:"Returns directory path used for temporary files",signature:"(void): string"},version_compare:{description:'Compares two "PHP-standardized" version number strings',signature:"( string $version1 , string $version2 , string $operator ): bool"},zend_logo_guid:{description:"Gets the Zend guid",signature:"(void): string"},zend_thread_id:{description:"Returns a unique identifier for the current thread",signature:"(void): int"},zend_version:{description:"Gets the version of the current Zend engine",signature:"(void): string"},bzclose:{description:"Close a bzip2 file",signature:"( resource $bz ): int"},bzcompress:{description:"Compress a string into bzip2 encoded data",signature:"( string $source [, int $blocksize = 4 [, int $workfactor = 0 ]]): mixed"},bzdecompress:{description:"Decompresses bzip2 encoded data",signature:"( string $source [, int $small = 0 ]): mixed"},bzerrno:{description:"Returns a bzip2 error number",signature:"( resource $bz ): int"},bzerror:{description:"Returns the bzip2 error number and error string in an array",signature:"( resource $bz ): array"},bzerrstr:{description:"Returns a bzip2 error string",signature:"( resource $bz ): string"},bzflush:{description:"Force a write of all buffered data",signature:"( resource $bz ): bool"},bzopen:{description:"Opens a bzip2 compressed file",signature:"( mixed $file , string $mode ): resource"},bzread:{description:"Binary safe bzip2 file read",signature:"( resource $bz [, int $length = 1024 ]): string"},bzwrite:{description:"Binary safe bzip2 file write",signature:"( resource $bz , string $data [, int $length ]): int"},PharException:{description:"The PharException class provides a phar-specific exception class for try/catch blocks"},zip_close:{description:"Close a ZIP file archive",signature:"( resource $zip ): void"},zip_entry_close:{description:"Close a directory entry",signature:"( resource $zip_entry ): bool"},zip_entry_compressedsize:{description:"Retrieve the compressed size of a directory entry",signature:"( resource $zip_entry ): int"},zip_entry_compressionmethod:{description:"Retrieve the compression method of a directory entry",signature:"( resource $zip_entry ): string"},zip_entry_filesize:{description:"Retrieve the actual file size of a directory entry",signature:"( resource $zip_entry ): int"},zip_entry_name:{description:"Retrieve the name of a directory entry",signature:"( resource $zip_entry ): string"},zip_entry_open:{description:"Open a directory entry for reading",signature:"( resource $zip , resource $zip_entry [, string $mode ]): bool"},zip_entry_read:{description:"Read from an open directory entry",signature:"( resource $zip_entry [, int $length = 1024 ]): string"},zip_open:{description:"Open a ZIP file archive",signature:"( string $filename ): resource"},zip_read:{description:"Read next entry in a ZIP file archive",signature:"( resource $zip ): resource"},deflate_add:{description:"Incrementally deflate data",signature:"( resource $context , string $data [, int $flush_mode = ZLIB_SYNC_FLUSH ]): string"},deflate_init:{description:"Initialize an incremental deflate context",signature:"( int $encoding [, array $options = array() ]): resource"},gzclose:{description:"Close an open gz-file pointer",signature:"( resource $zp ): bool"},gzcompress:{description:"Compress a string",signature:"( string $data [, int $level = -1 [, int $encoding = ZLIB_ENCODING_DEFLATE ]]): string"},gzdecode:{description:"Decodes a gzip compressed string",signature:"( string $data [, int $length ]): string"},gzdeflate:{description:"Deflate a string",signature:"( string $data [, int $level = -1 [, int $encoding = ZLIB_ENCODING_RAW ]]): string"},gzencode:{description:"Create a gzip compressed string",signature:"( string $data [, int $level = -1 [, int $encoding_mode = FORCE_GZIP ]]): string"},gzeof:{description:"Test for EOF on a gz-file pointer",signature:"( resource $zp ): int"},gzfile:{description:"Read entire gz-file into an array",signature:"( string $filename [, int $use_include_path = 0 ]): array"},gzgetc:{description:"Get character from gz-file pointer",signature:"( resource $zp ): string"},gzgets:{description:"Get line from file pointer",signature:"( resource $zp [, int $length ]): string"},gzgetss:{description:"Get line from gz-file pointer and strip HTML tags",signature:"( resource $zp , int $length [, string $allowable_tags ]): string"},gzinflate:{description:"Inflate a deflated string",signature:"( string $data [, int $length = 0 ]): string"},gzopen:{description:"Open gz-file",signature:"( string $filename , string $mode [, int $use_include_path = 0 ]): resource"},gzpassthru:{description:"Output all remaining data on a gz-file pointer",signature:"( resource $zp ): int"},gzputs:{description:"Alias of gzwrite"},gzread:{description:"Binary-safe gz-file read",signature:"( resource $zp , int $length ): string"},gzrewind:{description:"Rewind the position of a gz-file pointer",signature:"( resource $zp ): bool"},gzseek:{description:"Seek on a gz-file pointer",signature:"( resource $zp , int $offset [, int $whence = SEEK_SET ]): int"},gztell:{description:"Tell gz-file pointer read/write position",signature:"( resource $zp ): int"},gzuncompress:{description:"Uncompress a compressed string",signature:"( string $data [, int $length = 0 ]): string"},gzwrite:{description:"Binary-safe gz-file write",signature:"( resource $zp , string $string [, int $length ]): int"},inflate_add:{description:"Incrementally inflate encoded data",signature:"( resource $context , string $encoded_data [, int $flush_mode = ZLIB_SYNC_FLUSH ]): string"},inflate_get_read_len:{description:"Get number of bytes read so far",signature:"( resource $resource ): int"},inflate_get_status:{description:"Get decompression status",signature:"( resource $resource ): int"},inflate_init:{description:"Initialize an incremental inflate context",signature:"( int $encoding [, array $options = array() ]): resource"},readgzfile:{description:"Output a gz-file",signature:"( string $filename [, int $use_include_path = 0 ]): int"},zlib_decode:{description:"Uncompress any raw/gzip/zlib encoded data",signature:"( string $data [, string $max_decoded_len ]): string"},zlib_encode:{description:"Compress data with the specified encoding",signature:"( string $data , int $encoding [, int $level = -1 ]): string"},zlib_get_coding_type:{description:"Returns the coding type used for output compression",signature:"(void): string"},random_bytes:{description:"Generates cryptographically secure pseudo-random bytes",signature:"( int $length ): string"},random_int:{description:"Generates cryptographically secure pseudo-random integers",signature:"( int $min , int $max ): int"},hash_algos:{description:"Return a list of registered hashing algorithms",signature:"(void): array"},hash_copy:{description:"Copy hashing context",signature:"( HashContext $context ): HashContext"},hash_equals:{description:"Timing attack safe string comparison",signature:"( string $known_string , string $user_string ): bool"},hash_file:{description:"Generate a hash value using the contents of a given file",signature:"( string $algo , string $filename [, bool $raw_output ]): string"},hash_final:{description:"Finalize an incremental hash and return resulting digest",signature:"( HashContext $context [, bool $raw_output ]): string"},hash_hkdf:{description:"Generate a HKDF key derivation of a supplied key input",signature:"( string $algo , string $ikm [, int $length = 0 [, string $info = '' [, string $salt = '' ]]]): string"},hash_hmac_algos:{description:"Return a list of registered hashing algorithms suitable for hash_hmac",signature:"(void): array"},hash_hmac_file:{description:"Generate a keyed hash value using the HMAC method and the contents of a given file",signature:"( string $algo , string $filename , string $key [, bool $raw_output ]): string"},hash_hmac:{description:"Generate a keyed hash value using the HMAC method",signature:"( string $algo , string $data , string $key [, bool $raw_output ]): string"},hash_init:{description:"Initialize an incremental hashing context",signature:"( string $algo [, int $options = 0 [, string $key ]]): HashContext"},hash_pbkdf2:{description:"Generate a PBKDF2 key derivation of a supplied password",signature:"( string $algo , string $password , string $salt , int $iterations [, int $length = 0 [, bool $raw_output ]]): string"},hash_update_file:{description:"Pump data into an active hashing context from a file",signature:"( HashContext $hcontext , string $filename [, resource $scontext ]): bool"},hash_update_stream:{description:"Pump data into an active hashing context from an open stream",signature:"( HashContext $context , resource $handle [, int $length = -1 ]): int"},hash_update:{description:"Pump data into an active hashing context",signature:"( HashContext $context , string $data ): bool"},hash:{description:"Generate a hash value (message digest)",signature:"( string $algo , string $data [, bool $raw_output ]): string"},openssl_cipher_iv_length:{description:"Gets the cipher iv length",signature:"( string $method ): int"},openssl_csr_export_to_file:{description:"Exports a CSR to a file",signature:"( mixed $csr , string $outfilename [, bool $notext ]): bool"},openssl_csr_export:{description:"Exports a CSR as a string",signature:"( mixed $csr , string $out [, bool $notext ]): bool"},openssl_csr_get_public_key:{description:"Returns the public key of a CSR",signature:"( mixed $csr [, bool $use_shortnames ]): resource"},openssl_csr_get_subject:{description:"Returns the subject of a CSR",signature:"( mixed $csr [, bool $use_shortnames ]): array"},openssl_csr_new:{description:"Generates a CSR",signature:"( array $dn , resource $privkey [, array $configargs [, array $extraattribs ]]): mixed"},openssl_csr_sign:{description:"Sign a CSR with another certificate (or itself) and generate a certificate",signature:"( mixed $csr , mixed $cacert , mixed $priv_key , int $days [, array $configargs [, int $serial = 0 ]]): resource"},openssl_decrypt:{description:"Decrypts data",signature:'( string $data , string $method , string $key [, int $options = 0 [, string $iv = "" [, string $tag = "" [, string $aad = "" ]]]]): string'},openssl_dh_compute_key:{description:"Computes shared secret for public value of remote DH public key and local DH key",signature:"( string $pub_key , resource $dh_key ): string"},openssl_digest:{description:"Computes a digest",signature:"( string $data , string $method [, bool $raw_output ]): string"},openssl_encrypt:{description:"Encrypts data",signature:'( string $data , string $method , string $key [, int $options = 0 [, string $iv = "" [, string $tag = NULL [, string $aad = "" [, int $tag_length = 16 ]]]]]): string'},openssl_error_string:{description:"Return openSSL error message",signature:"(void): string"},openssl_free_key:{description:"Free key resource",signature:"( resource $key_identifier ): void"},openssl_get_cert_locations:{description:"Retrieve the available certificate locations",signature:"(void): array"},openssl_get_cipher_methods:{description:"Gets available cipher methods",signature:"([ bool $aliases ]): array"},openssl_get_curve_names:{description:"Gets list of available curve names for ECC",signature:"(void): array"},openssl_get_md_methods:{description:"Gets available digest methods",signature:"([ bool $aliases ]): array"},openssl_get_privatekey:{description:"Alias of openssl_pkey_get_private"},openssl_get_publickey:{description:"Alias of openssl_pkey_get_public"},openssl_open:{description:"Open sealed data",signature:'( string $sealed_data , string $open_data , string $env_key , mixed $priv_key_id [, string $method = "RC4" [, string $iv ]]): bool'},openssl_pbkdf2:{description:"Generates a PKCS5 v2 PBKDF2 string",signature:'( string $password , string $salt , int $key_length , int $iterations [, string $digest_algorithm = "sha1" ]): string'},openssl_pkcs12_export_to_file:{description:"Exports a PKCS#12 Compatible Certificate Store File",signature:"( mixed $x509 , string $filename , mixed $priv_key , string $pass [, array $args ]): bool"},openssl_pkcs12_export:{description:"Exports a PKCS#12 Compatible Certificate Store File to variable",signature:"( mixed $x509 , string $out , mixed $priv_key , string $pass [, array $args ]): bool"},openssl_pkcs12_read:{description:"Parse a PKCS#12 Certificate Store into an array",signature:"( string $pkcs12 , array $certs , string $pass ): bool"},openssl_pkcs7_decrypt:{description:"Decrypts an S/MIME encrypted message",signature:"( string $infilename , string $outfilename , mixed $recipcert [, mixed $recipkey ]): bool"},openssl_pkcs7_encrypt:{description:"Encrypt an S/MIME message",signature:"( string $infile , string $outfile , mixed $recipcerts , array $headers [, int $flags = 0 [, int $cipherid = OPENSSL_CIPHER_RC2_40 ]]): bool"},openssl_pkcs7_read:{description:"Export the PKCS7 file to an array of PEM certificates",signature:"( string $infilename , array $certs ): bool"},openssl_pkcs7_sign:{description:"Sign an S/MIME message",signature:"( string $infilename , string $outfilename , mixed $signcert , mixed $privkey , array $headers [, int $flags = PKCS7_DETACHED [, string $extracerts ]]): bool"},openssl_pkcs7_verify:{description:"Verifies the signature of an S/MIME signed message",signature:"( string $filename , int $flags [, string $outfilename [, array $cainfo [, string $extracerts [, string $content [, string $p7bfilename ]]]]]): mixed"},openssl_pkey_export_to_file:{description:"Gets an exportable representation of a key into a file",signature:"( mixed $key , string $outfilename [, string $passphrase [, array $configargs ]]): bool"},openssl_pkey_export:{description:"Gets an exportable representation of a key into a string",signature:"( mixed $key , string $out [, string $passphrase [, array $configargs ]]): bool"},openssl_pkey_free:{description:"Frees a private key",signature:"( resource $key ): void"},openssl_pkey_get_details:{description:"Returns an array with the key details",signature:"( resource $key ): array"},openssl_pkey_get_private:{description:"Get a private key",signature:'( mixed $key [, string $passphrase = "" ]): resource'},openssl_pkey_get_public:{description:"Extract public key from certificate and prepare it for use",signature:"( mixed $certificate ): resource"},openssl_pkey_new:{description:"Generates a new private key",signature:"([ array $configargs ]): resource"},openssl_private_decrypt:{description:"Decrypts data with private key",signature:"( string $data , string $decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ]): bool"},openssl_private_encrypt:{description:"Encrypts data with private key",signature:"( string $data , string $crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ]): bool"},openssl_public_decrypt:{description:"Decrypts data with public key",signature:"( string $data , string $decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ]): bool"},openssl_public_encrypt:{description:"Encrypts data with public key",signature:"( string $data , string $crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ]): bool"},openssl_random_pseudo_bytes:{description:"Generate a pseudo-random string of bytes",signature:"( int $length [, bool $crypto_strong ]): string"},openssl_seal:{description:"Seal (encrypt) data",signature:'( string $data , string $sealed_data , array $env_keys , array $pub_key_ids [, string $method = "RC4" [, string $iv ]]): int'},openssl_sign:{description:"Generate signature",signature:"( string $data , string $signature , mixed $priv_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ]): bool"},openssl_spki_export_challenge:{description:"Exports the challenge assoicated with a signed public key and challenge",signature:"( string $spkac ): string"},openssl_spki_export:{description:"Exports a valid PEM formatted public key signed public key and challenge",signature:"( string $spkac ): string"},openssl_spki_new:{description:"Generate a new signed public key and challenge",signature:"( resource $privkey , string $challenge [, int $algorithm = 0 ]): string"},openssl_spki_verify:{description:"Verifies a signed public key and challenge",signature:"( string $spkac ): string"},openssl_verify:{description:"Verify signature",signature:"( string $data , string $signature , mixed $pub_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ]): int"},openssl_x509_check_private_key:{description:"Checks if a private key corresponds to a certificate",signature:"( mixed $cert , mixed $key ): bool"},openssl_x509_checkpurpose:{description:"Verifies if a certificate can be used for a particular purpose",signature:"( mixed $x509cert , int $purpose [, array $cainfo = array() [, string $untrustedfile ]]): int"},openssl_x509_export_to_file:{description:"Exports a certificate to file",signature:"( mixed $x509 , string $outfilename [, bool $notext ]): bool"},openssl_x509_export:{description:"Exports a certificate as a string",signature:"( mixed $x509 , string $output [, bool $notext ]): bool"},openssl_x509_fingerprint:{description:"Calculates the fingerprint, or digest, of a given X.509 certificate",signature:'( mixed $x509 [, string $hash_algorithm = "sha1" [, bool $raw_output ]]): string'},openssl_x509_free:{description:"Free certificate resource",signature:"( resource $x509cert ): void"},openssl_x509_parse:{description:"Parse an X509 certificate and return the information as an array",signature:"( mixed $x509cert [, bool $shortnames ]): array"},openssl_x509_read:{description:"Parse an X.509 certificate and return a resource identifier for it",signature:"( mixed $x509certdata ): resource"},password_get_info:{description:"Returns information about the given hash",signature:"( string $hash ): array"},password_hash:{description:"Creates a password hash",signature:"( string $password , int $algo [, array $options ]): integer"},password_needs_rehash:{description:"Checks if the given hash matches the given options",signature:"( string $hash , int $algo [, array $options ]): bool"},password_verify:{description:"Verifies that a password matches a hash",signature:"( string $password , string $hash ): bool"},sodium_add:{description:"Add large numbers",signature:"( string $val , string $addv ): void"},sodium_base642bin:{description:"Description",signature:"( string $b64 , int $id [, string $ignore ]): string"},sodium_bin2base64:{description:"Description",signature:"( string $bin , int $id ): string"},sodium_bin2hex:{description:"Encode to hexadecimal",signature:"( string $bin ): string"},sodium_compare:{description:"Compare large numbers",signature:"( string $buf1 , string $buf2 ): int"},sodium_crypto_aead_aes256gcm_decrypt:{description:"Decrypt in combined mode with precalculation",signature:"( string $ciphertext , string $ad , string $nonce , string $key ): string"},sodium_crypto_aead_aes256gcm_encrypt:{description:"Encrypt in combined mode with precalculation",signature:"( string $msg , string $ad , string $nonce , string $key ): string"},sodium_crypto_aead_aes256gcm_is_available:{description:"Check if hardware supports AES256-GCM",signature:"(void): bool"},sodium_crypto_aead_aes256gcm_keygen:{description:"Get random bytes for key",signature:"(void): string"},sodium_crypto_aead_chacha20poly1305_decrypt:{description:"Verify that the ciphertext includes a valid tag",signature:"( string $ciphertext , string $ad , string $nonce , string $key ): string"},sodium_crypto_aead_chacha20poly1305_encrypt:{description:"Encrypt a message",signature:"( string $msg , string $ad , string $nonce , string $key ): string"},sodium_crypto_aead_chacha20poly1305_ietf_decrypt:{description:"Verify that the ciphertext includes a valid tag",signature:"( string $ciphertext , string $ad , string $nonce , string $key ): string"},sodium_crypto_aead_chacha20poly1305_ietf_encrypt:{description:"Encrypt a message",signature:"( string $msg , string $ad , string $nonce , string $key ): string"},sodium_crypto_aead_chacha20poly1305_ietf_keygen:{description:"Get random bytes for key",signature:"(void): string"},sodium_crypto_aead_chacha20poly1305_keygen:{description:"Get random bytes for key",signature:"(void): string"},sodium_crypto_aead_xchacha20poly1305_ietf_decrypt:{description:"Description",signature:"( string $ciphertext , string $ad , string $nonce , string $key ): string"},sodium_crypto_aead_xchacha20poly1305_ietf_encrypt:{description:"Description",signature:"( string $msg , string $ad , string $nonce , string $key ): string"},sodium_crypto_aead_xchacha20poly1305_ietf_keygen:{description:"Description",signature:"(void): string"},sodium_crypto_auth_keygen:{description:"Get random bytes for key",signature:"(void): string"},sodium_crypto_auth_verify:{description:"Verifies that the tag is valid for the message",signature:"( string $signature , string $msg , string $key ): bool"},sodium_crypto_auth:{description:"Compute a tag for the message",signature:"( string $msg , string $key ): string"},sodium_crypto_box_keypair_from_secretkey_and_publickey:{description:"Description",signature:"( string $secret_key , string $public_key ): string"},sodium_crypto_box_keypair:{description:"Randomly generate a secret key and a corresponding public key",signature:"(void): string"},sodium_crypto_box_open:{description:"Verify and decrypt a ciphertext",signature:"( string $ciphertext , string $nonce , string $key ): string"},sodium_crypto_box_publickey_from_secretkey:{description:"Description",signature:"( string $key ): string"},sodium_crypto_box_publickey:{description:"Description",signature:"( string $key ): string"},sodium_crypto_box_seal_open:{description:"Decrypt the ciphertext",signature:"( string $ciphertext , string $key ): string"},sodium_crypto_box_seal:{description:"Encrypt a message",signature:"( string $msg , string $key ): string"},sodium_crypto_box_secretkey:{description:"Description",signature:"( string $key ): string"},sodium_crypto_box_seed_keypair:{description:"Deterministically derive the key pair from a single key",signature:"( string $key ): string"},sodium_crypto_box:{description:"Encrypt a message",signature:"( string $msg , string $nonce , string $key ): string"},sodium_crypto_generichash_final:{description:"Complete the hash",signature:"( string $state [, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ]): string"},sodium_crypto_generichash_init:{description:"Initialize a hash",signature:"([ string $key [, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ]]): string"},sodium_crypto_generichash_keygen:{description:"Get random bytes for key",signature:"(void): string"},sodium_crypto_generichash_update:{description:"Add message to a hash",signature:"( string $state , string $msg ): bool"},sodium_crypto_generichash:{description:"Get a hash of the message",signature:"( string $msg [, string $key [, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ]]): string"},sodium_crypto_kdf_derive_from_key:{description:"Derive a subkey",signature:"( int $subkey_len , int $subkey_id , string $context , string $key ): string"},sodium_crypto_kdf_keygen:{description:"Get random bytes for key",signature:"(void): string"},sodium_crypto_kx_client_session_keys:{description:"Description",signature:"( string $client_keypair , string $server_key ): array"},sodium_crypto_kx_keypair:{description:"Creates a new sodium keypair",signature:"(void): string"},sodium_crypto_kx_publickey:{description:"Description",signature:"( string $key ): string"},sodium_crypto_kx_secretkey:{description:"Description",signature:"( string $key ): string"},sodium_crypto_kx_seed_keypair:{description:"Description",signature:"( string $string ): string"},sodium_crypto_kx_server_session_keys:{description:"Description",signature:"( string $server_keypair , string $client_key ): array"},sodium_crypto_pwhash_scryptsalsa208sha256_str_verify:{description:"Verify that the password is a valid password verification string",signature:"( string $hash , string $password ): bool"},sodium_crypto_pwhash_scryptsalsa208sha256_str:{description:"Get an ASCII encoded hash",signature:"( string $password , int $opslimit , int $memlimit ): string"},sodium_crypto_pwhash_scryptsalsa208sha256:{description:"Derives a key from a password",signature:"( int $length , string $password , string $salt , int $opslimit , int $memlimit ): string"},sodium_crypto_pwhash_str_needs_rehash:{description:"Description",signature:"( string $password , int $opslimit , int $memlimit ): bool"},sodium_crypto_pwhash_str_verify:{description:"Verifies that a password matches a hash",signature:"( string $hash , string $password ): bool"},sodium_crypto_pwhash_str:{description:"Get an ASCII-encoded hash",signature:"( string $password , int $opslimit , int $memlimit ): string"},sodium_crypto_pwhash:{description:"Derive a key from a password",signature:"( int $length , string $password , string $salt , int $opslimit , int $memlimit [, int $alg ]): string"},sodium_crypto_scalarmult_base:{description:"Alias of sodium_crypto_box_publickey_from_secretkey"},sodium_crypto_scalarmult:{description:"Compute a shared secret given a user's secret key and another user's public key",signature:"( string $n , string $p ): string"},sodium_crypto_secretbox_keygen:{description:"Get random bytes for key",signature:"(void): string"},sodium_crypto_secretbox_open:{description:"Verify and decrypt a ciphertext",signature:"( string $ciphertext , string $nonce , string $key ): string"},sodium_crypto_secretbox:{description:"Encrypt a message",signature:"( string $string , string $nonce , string $key ): string"},sodium_crypto_secretstream_xchacha20poly1305_init_pull:{description:"Description",signature:"( string $header , string $key ): string"},sodium_crypto_secretstream_xchacha20poly1305_init_push:{description:"Description",signature:"( string $key ): array"},sodium_crypto_secretstream_xchacha20poly1305_keygen:{description:"Description",signature:"(void): string"},sodium_crypto_secretstream_xchacha20poly1305_pull:{description:"Description",signature:"( string $state , string $c [, string $ad ]): array"},sodium_crypto_secretstream_xchacha20poly1305_push:{description:"Description",signature:"( string $state , string $msg [, string $ad [, int $tag ]]): string"},sodium_crypto_secretstream_xchacha20poly1305_rekey:{description:"Description",signature:"( string $state ): void"},sodium_crypto_shorthash_keygen:{description:"Get random bytes for key",signature:"(void): string"},sodium_crypto_shorthash:{description:"Compute a fixed-size fingerprint for the message",signature:"( string $msg , string $key ): string"},sodium_crypto_sign_detached:{description:"Sign the message",signature:"( string $msg , string $secretkey ): string"},sodium_crypto_sign_ed25519_pk_to_curve25519:{description:"Convert an Ed25519 public key to a Curve25519 public key",signature:"( string $key ): string"},sodium_crypto_sign_ed25519_sk_to_curve25519:{description:"Convert an Ed25519 secret key to a Curve25519 secret key",signature:"( string $key ): string"},sodium_crypto_sign_keypair_from_secretkey_and_publickey:{description:"Description",signature:"( string $secret_key , string $public_key ): string"},sodium_crypto_sign_keypair:{description:"Randomly generate a secret key and