# OAuth

Plugin Identifier: 20000

Summary

This plugin is a combined edition of the cURL, JSON, ZIP, Common Crypto and MISC plugins. It includes all the functions necessary to implement OAuth 1.0 and 2.0.

Note: The plugin commands IDs have shift since the introduction of PKCS and RSA commands. If you have an old version of the plugin in your structure, remove it, reopen (to reset the tokens) install the new plugin and open again.

Change list for 2014-05-29

New Command

RSASHA1

Change list for 2013-12-13

New Constant

CURLOPT_DEBUGFUNCTION

Change list for 2013-02-14

New Command

JSON Append array element

Creates a copy of an existing node and appends it as an array element to the specified node.

JSON Append array

Shorthand for Append node and SET TYPE to JSON_ARRAY.

Modified Command

libcurl version is updated to 7.29.0 better support for IMAP.

cURL now yields to 4D to avoid hang during long requests.

JSON CLOSE now checks if passed node is a valid root, to avoid over release.

JSON Append node now accepts a 3rd parameter, which can be a JSON text (object or array) to insert directly to an existing node.

## PKCS

### PEM From P12

`TEXT:=PEM From P12 (BLOB; BLOB; TEXT)`

`returnValue` (TEXT)

Discussion

## MISC

### PATH From user selection

`TEXT:=PATH From user selection (TEXT; TEXT; TEXT)`

`returnValue` (TEXT)

Discussion

### PATH Get known folder

`TEXT:=PATH Get known folder (LONGINT)`

`returnValue` (TEXT)

Discussion

### PICTURE GET RAW DATA

`PICTURE GET RAW DATA (PICTURE; ARRAY; ARRAY)`

Discussion

### PROCESS GET LIST

`PROCESS GET LIST (ARRAY; ARRAY; ARRAY)`

Discussion

### PROCESS Get id

`LONGINT:=PROCESS Get id`

`returnValue` (LONGINT)

Discussion

### STACK Get available size

`LONGINT:=STACK Get available size`

`returnValue` (LONGINT)

Discussion

### STRUCTURE Import definition

`LONGINT:=STRUCTURE Import definition (TEXT)`

`returnValue` (LONGINT)

Discussion

### SYSTEM Generate UUID

`TEXT:=SYSTEM Generate UUID`

`returnValue` (TEXT)

Discussion

### SYSTEM Get timestamp

`TEXT:=SYSTEM Get timestamp`

`returnValue` (TEXT)

Discussion

### SYSTEM Get timestring

`TEXT:=SYSTEM Get timestring`

`returnValue` (TEXT)

Discussion

### SYSTEM Get unixtime

`TEXT:=SYSTEM Get unixtime`

`returnValue` (TEXT)

Discussion

### VOLUME Is ejectable

`LONGINT:=VOLUME Is ejectable (TEXT; LONGINT)`

`returnValue` (LONGINT)

Discussion

### VOLUME Is remote

`LONGINT:=VOLUME Is remote (TEXT; LONGINT)`

`returnValue` (LONGINT)

Discussion

## JSON

### JSON Append array

`TEXT:=JSON Append array (TEXT; TEXT)`

`returnValue` (TEXT)

Discussion

### JSON Append array element

`TEXT:=JSON Append array element (TEXT; TEXT)`

`returnValue` (TEXT)

Discussion

### JSON Append bool

`TEXT:=JSON Append bool (TEXT; TEXT; LONGINT)`

`returnValue` (TEXT)

Discussion

### JSON Append bool array

`TEXT:=JSON Append bool array (TEXT; TEXT; ARRAY)`

`returnValue` (TEXT)

Discussion

### JSON Append long

`TEXT:=JSON Append long (TEXT; TEXT; LONGINT)`

`returnValue` (TEXT)

Discussion

### JSON Append long array

`TEXT:=JSON Append long array (TEXT; TEXT; ARRAY)`

`returnValue` (TEXT)

Discussion

### JSON Append node

`TEXT:=JSON Append node (TEXT; TEXT; TEXT)`

`returnValue` (TEXT)

Discussion

### JSON Append real

`TEXT:=JSON Append real (TEXT; TEXT; REAL)`

`returnValue` (TEXT)

Discussion

### JSON Append real array

`TEXT:=JSON Append real array (TEXT; TEXT; ARRAY)`

`returnValue` (TEXT)

Discussion

### JSON Append text

`TEXT:=JSON Append text (TEXT; TEXT; TEXT)`

`returnValue` (TEXT)

Discussion

### JSON Append text array

`TEXT:=JSON Append text array (TEXT; TEXT; ARRAY)`

`returnValue` (TEXT)

Discussion

### JSON CLEAR

`JSON CLEAR (TEXT)`

Discussion

### JSON CLOSE

`JSON CLOSE (TEXT)`

Discussion

### JSON DELETE ITEM BY NAME

`JSON DELETE ITEM BY NAME (TEXT; TEXT; LONGINT)`

Discussion

### JSON DELETE ITEM BY POSITION

`JSON DELETE ITEM BY POSITION (TEXT; LONGINT)`

Discussion

### JSON Export to text

`TEXT:=JSON Export to text (TEXT; LONGINT)`

`returnValue` (TEXT)

Discussion

### JSON GET BOOL ARRAY

`JSON GET BOOL ARRAY (TEXT; ARRAY)`

Discussion

### JSON GET CHILD NODES

`JSON GET CHILD NODES (TEXT; ARRAY; ARRAY; ARRAY)`

Discussion

### JSON GET LONG ARRAY

`JSON GET LONG ARRAY (TEXT; ARRAY)`

Discussion

### JSON GET REAL ARRAY

`JSON GET REAL ARRAY (TEXT; ARRAY)`

Discussion

### JSON GET TEXT ARRAY

`JSON GET TEXT ARRAY (TEXT; ARRAY)`

Discussion

### JSON Get bool

`LONGINT:=JSON Get bool (TEXT)`

`returnValue` (LONGINT)

Discussion

### JSON Get child by name

`TEXT:=JSON Get child by name (TEXT; TEXT; LONGINT)`

`returnValue` (TEXT)

Discussion

### JSON Get child by position

`TEXT:=JSON Get child by position (TEXT; LONGINT)`

`returnValue` (TEXT)

Discussion

### JSON Get comment

`TEXT:=JSON Get comment (TEXT)`

`returnValue` (TEXT)

Discussion

### JSON Get long

`LONGINT:=JSON Get long (TEXT)`

`returnValue` (LONGINT)

Discussion

### JSON Get name

`TEXT:=JSON Get name (TEXT)`

`returnValue` (TEXT)

Discussion

### JSON Get real

`REAL:=JSON Get real (TEXT)`

`returnValue` (REAL)

Discussion

### JSON Get text

`TEXT:=JSON Get text (TEXT)`

`returnValue` (TEXT)

Discussion

### JSON Get type

`LONGINT:=JSON Get type (TEXT)`

`returnValue` (LONGINT)

Discussion

### JSON New

`TEXT:=JSON New`

`returnValue` (TEXT)

Discussion

### JSON Parse text

`TEXT:=JSON Parse text (TEXT)`

`returnValue` (TEXT)

Discussion

### JSON SET BOOL

`JSON SET BOOL (TEXT; LONGINT)`

Discussion

### JSON SET COMMENT

`JSON SET COMMENT (TEXT; TEXT)`

Discussion

### JSON SET LONG

`JSON SET LONG (TEXT; LONGINT)`

Discussion

### JSON SET NAME

`JSON SET NAME (TEXT; TEXT)`

Discussion

### JSON SET NULL

`JSON SET NULL (TEXT)`

Discussion

### JSON SET REAL

`JSON SET REAL (TEXT; REAL)`

Discussion

### JSON SET TEXT

`JSON SET TEXT (TEXT; TEXT)`

Discussion

### JSON SET TYPE

`JSON SET TYPE (TEXT; LONGINT)`

Discussion

### JSON Strip white space

`TEXT:=JSON Strip white space (TEXT)`

`returnValue` (TEXT)

Discussion

## ZIP

### Unzip

`LONGINT:=Unzip (TEXT; TEXT; TEXT)`

`returnValue` (LONGINT)

Discussion

### Zip

`LONGINT:=Zip (TEXT; TEXT; TEXT)`

`returnValue` (LONGINT)

Discussion

## Common Crypto

### HMACMD5

`TEXT:=HMACMD5 (BLOB; BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### HMACSHA1

`TEXT:=HMACSHA1 (BLOB; BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### HMACSHA256

`TEXT:=HMACSHA256 (BLOB; BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### HMACSHA384

`TEXT:=HMACSHA384 (BLOB; BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### HMACSHA512

`TEXT:=HMACSHA512 (BLOB; BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### MD5

`TEXT:=MD5 (BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### RSASHA256

`TEXT:=RSASHA256 (BLOB; BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### SHA1

`TEXT:=SHA1 (BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### SHA256

`TEXT:=SHA256 (BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### SHA384

`TEXT:=SHA384 (BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

### SHA512

`TEXT:=SHA512 (BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

## cURL

`LONGINT:=cURL (TEXT; ARRAY; ARRAY; BLOB; BLOB; ARRAY; ARRAY; ARRAY; ARRAY)`

`returnValue` (LONGINT)

Discussion

### cURL Escape url

`TEXT:=cURL Escape url (TEXT)`

`returnValue` (TEXT)

Discussion

### cURL Get date

`LONGINT:=cURL Get date (TEXT; LONGINT)`

`returnValue` (LONGINT)

Discussion

### cURL Get version

`TEXT:=cURL Get version`

`returnValue` (TEXT)

Discussion

### cURL Unescape url

`TEXT:=cURL Unescape url (TEXT)`

`returnValue` (TEXT)

Discussion

## Common Crypto II

### RSASHA1

`TEXT:=RSASHA1 (BLOB; BLOB; LONGINT)`

`returnValue` (TEXT)

Discussion

## Known Folder Path

`MAC Documents (0)`

`WIN My Documents (0)`

`MAC App Support User (1)`

`WIN App Data Local (1)`

`MAC App Support Local (2)`

`WIN App Data Common (2)`

`WIN App Data Roaming (3)`

## JSON Export Option

`JSON_WITH_WHITE_SPACE (0)`

`JSON_WITHOUT_WHITE_SPACE (1)`

## JSON Get Option

`JSON_CASE_SENSITIVE (0)`

`JSON_CASE_INSENSITIVE (1)`

## JSON Types

`JSON_NULL (0)`

`JSON_STRING (1)`

`JSON_NUMBER (2)`

`JSON_BOOL (3)`

`JSON_ARRAY (4)`

`JSON_NODE (5)`

## Crypto Output Format

`Crypto HEX (0)`

`Crypto BASE64 (1)`

## cURL RTSP Options

`CURL_RTSPREQ_OPTIONS (1)`

`CURL_RTSPREQ_DESCRIBE (2)`

`CURL_RTSPREQ_ANNOUNCE (3)`

`CURL_RTSPREQ_SETUP (4)`

`CURL_RTSPREQ_PLAY (5)`

`CURL_RTSPREQ_PAUSE (6)`

`CURL_RTSPREQ_TEARDOWN (7)`

`CURL_RTSPREQ_GET_PARAMETER (8)`

`CURL_RTSPREQ_SET_PARAMETER (9)`

`CURL_RTSPREQ_RECORD (10)`

`CURL_RTSPREQ_RECEIVE (11)`

## cURL FTP Options

`CURLFTPMETHOD_MULTICWD (1)`

`CURLFTPMETHOD_NOCWD (2)`

`CURLFTPMETHOD_SINGLECWD (3)`

## cURL CCC Options

`CURLFTPSSL_CCC_PASSIVE (1)`

`CURLFTPSSL_CCC_ACTIVE (2)`

## cURL HTTP Versions

`CURL_HTTP_VERSION_1_0 (1)`

`CURL_HTTP_VERSION_1_1 (2)`

## cURL NETRC Options

`CURL_NETRC_OPTIONAL (1)`

`CURL_NETRC_REQUIRED (2)`

## cURL Use SSL Options

`CURLUSESSL_TRY (1)`

`CURLUSESSL_CONTROL (2)`

`CURLUSESSL_ALL (3)`

## cURL IP Resolve Options

`CURL_IPRESOLVE_V4 (1)`

`CURL_IPRESOLVE_V6 (2)`

## cURL GSS Delegation Flags

`CURLGSSAPI_DELEGATION_POLICY (1)`

`CURLGSSAPI_DELEGATION (2)`

## cURL SSL Option Flags

`CURLSSLOPT_ALLOW_BEAST (1)`

## cURL SSL/TLS Versions

`CURL_SSLVERSION_TLSv1 (1)`

`CURL_SSLVERSION_SSLv2 (2)`

`CURL_SSLVERSION_SSLv3 (3)`

## cURL SSH Auth Flags

`CURLSSH_AUTH_PUBLICKEY (1)`

`CURLSSH_AUTH_PASSWORD (2)`

`CURLSSH_AUTH_HOST (4)`

`CURLSSH_AUTH_KEYBOARD (8)`

## cURL Auth Flags

`CURLAUTH_BASIC (1)`

`CURLAUTH_DIGEST (2)`

`CURLAUTH_GSSNEGOTIATE (4)`

`CURLAUTH_NTLM (8)`

`CURLAUTH_DIGEST_IE (16)`

`CURLAUTH_NTLM_WB (32)`

## cURL Proxy Types

`CURLPROXY_HTTP (0)`

`CURLPROXY_HTTP_1_0 (1)`

`CURLPROXY_SOCKS4 (4)`

`CURLPROXY_SOCKS5 (5)`

`CURLPROXY_SOCKS4A (6)`

`CURLPROXY_SOCKS5_HOSTNAME (7)`

## cURL Options

`CURLOPT_AUTHORIZATION (2)`

`CURLOPT_PORT (3)`

`CURLOPT_PROXY (4)`

`CURLOPT_USERPWD (5)`

`CURLOPT_PROXYUSERPWD (6)`

`CURLOPT_RANGE (7)`

`CURLOPT_HTTP_CONTENT_TYPE (8)`

`CURLOPT_HTTP_ACCEPT (9)`

`CURLOPT_HTTP_EXPECT (10)`

`CURLOPT_WRITEFUNCTION (11)`

`CURLOPT_READFUNCTION (12)`

`CURLOPT_TIMEOUT (13)`

`CURLOPT_INFILESIZE (14)`

`CURLOPT_HTTP_METHOD_OVERRIDE (15)`

`CURLOPT_REFERER (16)`

`CURLOPT_FTPPORT (17)`

`CURLOPT_USERAGENT (18)`

`CURLOPT_LOW_SPEED_LIMIT (19)`

`CURLOPT_LOW_SPEED_TIME (20)`

`CURLOPT_RESUME_FROM (21)`

`CURLOPT_COOKIE (22)`

`CURLOPT_HTTPHEADER (23)`

`CURLOPT_HTTPPOST (24)`

`CURLOPT_SSLCERT (25)`

`CURLOPT_KEYPASSWD (26)`

`CURLOPT_CRLF (27)`

`CURLOPT_QUOTE (28)`

`CURLOPT_COOKIEFILE (31)`

`CURLOPT_SSLVERSION (32)`

`CURLOPT_TIMECONDITION (33)`

`CURLOPT_TIMEVALUE (34)`

`CURLOPT_CUSTOMREQUEST (36)`

`CURLOPT_POSTQUOTE (39)`

`CURLOPT_HEADER (42)`

`CURLOPT_NOBODY (44)`

`CURLOPT_PATCH (45)`

`CURLOPT_UPLOAD (46)`

`CURLOPT_POST (47)`

`CURLOPT_DIRLISTONLY (48)`

`CURLOPT_APPEND (50)`

`CURLOPT_NETRC (51)`

`CURLOPT_FOLLOWLOCATION (52)`

`CURLOPT_TRANSFERTEXT (53)`

`CURLOPT_PUT (54)`

`CURLOPT_AUTOREFERER (58)`

`CURLOPT_PROXYPORT (59)`

`CURLOPT_POSTFIELDSIZE (60)`

`CURLOPT_HTTPPROXYTUNNEL (61)`

`CURLOPT_INTERFACE (62)`

`CURLOPT_KRBLEVEL (63)`

`CURLOPT_SSL_VERIFYPEER (64)`

`CURLOPT_CAINFO (65)`

`CURLOPT_MAXREDIRS (68)`

`CURLOPT_FILETIME (69)`

`CURLOPT_MAXCONNECTS (71)`

`CURLOPT_FRESH_CONNECT (74)`

`CURLOPT_FORBID_REUSE (75)`

`CURLOPT_RANDOM_FILE (76)`

`CURLOPT_EGDSOCKET (77)`

`CURLOPT_CONNECTTIMEOUT (78)`

`CURLOPT_HTTPGET (80)`

`CURLOPT_SSL_VERIFYHOST (81)`

`CURLOPT_COOKIEJAR (82)`

`CURLOPT_SSL_CIPHER_LIST (83)`

`CURLOPT_HTTP_VERSION (84)`

`CURLOPT_FTP_USE_EPSV (85)`

`CURLOPT_SSLCERTTYPE (86)`

`CURLOPT_SSLKEY (87)`

`CURLOPT_SSLKEYTYPE (88)`

`CURLOPT_SSLENGINE (89)`

`CURLOPT_SSLENGINE_DEFAULT (90)`

`CURLOPT_DNS_CACHE_TIMEOUT (92)`

`CURLOPT_PREQUOTE (93)`

`CURLOPT_DEBUGFUNCTION (94)`

`CURLOPT_COOKIESESSION (96)`

`CURLOPT_BUFFERSIZE (98)`

`CURLOPT_NOSIGNAL (99)`

`CURLOPT_PROXYTYPE (101)`

`CURLOPT_ACCEPT_ENCODING (102)`

`CURLOPT_HTTP200ALIASES (104)`

`CURLOPT_UNRESTRICTED_AUTH (105)`

`CURLOPT_FTP_USE_EPRT (106)`

`CURLOPT_HTTPAUTH (107)`

`CURLOPT_FTP_CREATE_MISSING_DIR (110)`

`CURLOPT_PROXYAUTH (111)`

`CURLOPT_FTP_RESPONSE_TIMEOUT (112)`

`CURLOPT_IPRESOLVE (113)`

`CURLOPT_MAXFILESIZE (114)`

`CURLOPT_INFILESIZE_LARGE (115)`

`CURLOPT_RESUME_FROM_LARGE (116)`

`CURLOPT_MAXFILESIZE_LARGE (117)`

`CURLOPT_NETRC_FILE (118)`

`CURLOPT_USE_SSL (119)`

`CURLOPT_POSTFIELDSIZE_LARGE (120)`

`CURLOPT_TCP_NODELAY (121)`

`CURLOPT_FTPSSLAUTH (129)`

`CURLOPT_FTP_ACCOUNT (134)`

`CURLOPT_COOKIELIST (135)`

`CURLOPT_IGNORE_CONTENT_LENGTH (136)`

`CURLOPT_FTP_SKIP_PASV_IP (137)`

`CURLOPT_FTP_FILEMETHOD (138)`

`CURLOPT_LOCALPORT (139)`

`CURLOPT_LOCALPORTRANGE (140)`

`CURLOPT_CONNECT_ONLY (141)`

`CURLOPT_MAX_SEND_SPEED_LARGE (145)`

`CURLOPT_MAX_RECV_SPEED_LARGE (146)`

`CURLOPT_FTP_ALTERNATIVE_TO_USE (147)`

`CURLOPT_SSL_SESSIONID_CACHE (150)`

`CURLOPT_SSH_AUTH_TYPES (151)`

`CURLOPT_SSH_PUBLIC_KEYFILE (152)`

`CURLOPT_SSH_PRIVATE_KEYFILE (153)`

`CURLOPT_FTP_SSL_CCC (154)`

`CURLOPT_TIMEOUT_MS (155)`

`CURLOPT_CONNECTTIMEOUT_MS (156)`

`CURLOPT_HTTP_TRANSFER_DECODING (157)`

`CURLOPT_HTTP_CONTENT_DECODING (158)`

`CURLOPT_NEW_FILE_PERMS (159)`

`CURLOPT_NEW_DIRECTORY_PERMS (160)`

`CURLOPT_POSTREDIR (161)`

`CURLOPT_SSH_HOST_PUBLIC_KEY_MD (162)`

`CURLOPT_PROXY_TRANSFER_MODE (166)`

`CURLOPT_CRLFILE (169)`

`CURLOPT_ISSUERCERT (170)`

`CURLOPT_ADDRESS_SCOPE (171)`

`CURLOPT_CERTINFO (172)`

`CURLOPT_USERNAME (173)`

`CURLOPT_PASSWORD (174)`

`CURLOPT_PROXYUSERNAME (175)`

`CURLOPT_PROXYPASSWORD (176)`

`CURLOPT_NOPROXY (177)`

`CURLOPT_TFTP_BLKSIZE (178)`

`CURLOPT_SOCKS5_GSSAPI_SERVICE (179)`

`CURLOPT_SOCKS5_GSSAPI_NEC (180)`

`CURLOPT_PROTOCOLS (181)`

`CURLOPT_REDIR_PROTOCOLS (182)`

`CURLOPT_SSH_KNOWNHOSTS (183)`

`CURLOPT_MAIL_FROM (186)`

`CURLOPT_MAIL_RCPT (187)`

`CURLOPT_FTP_USE_PRET (188)`

`CURLOPT_RTSP_REQUEST (189)`

`CURLOPT_RTSP_SESSION_ID (190)`

`CURLOPT_RTSP_STREAM_URI (191)`

`CURLOPT_RTSP_TRANSPORT (192)`

`CURLOPT_RTSP_CLIENT_CSEQ (193)`

`CURLOPT_RTSP_SERVER_CSEQ (194)`

`CURLOPT_WILDCARDMATCH (197)`

`CURLOPT_RESOLVE (203)`

`CURLOPT_TLSAUTH_USERNAME (204)`

`CURLOPT_TLSAUTH_PASSWORD (205)`

`CURLOPT_TLSAUTH_TYPE (206)`

`CURLOPT_TRANSFER_ENCODING (207)`

`CURLOPT_GSSAPI_DELEGATION (210)`

`CURLOPT_ACCEPTTIMEOUT_MS (212)`

`CURLOPT_TCP_KEEPALIVE (213)`

`CURLOPT_TCP_KEEPIDLE (214)`

`CURLOPT_TCP_KEEPINTVL (215)`

`CURLOPT_SSL_OPTIONS (216)`

`CURLOPT_MAIL_AUTH (217)`

## cURL Info

`CURLINFO_TEXT (0)`

`CURLINFO_HEADER_IN (1)`

`CURLINFO_HEADER_OUT (2)`

`CURLINFO_DATA_IN (3)`

`CURLINFO_DATA_OUT (4)`

`CURLINFO_SSL_DATA_IN (5)`

`CURLINFO_SSL_DATA_OUT (6)`