Fix API doc generation, add static API doc

This commit is contained in:
Alexander Senier 2018-08-17 22:38:26 +02:00
parent f8cdde3e4b
commit 1158fb7f75
67 changed files with 40839 additions and 4 deletions

View File

@ -9,14 +9,18 @@ all: JWX.gpr
@egrep -v -q '\(medium\|warning\|error\):' proof.log.tmp
@mv proof.log.tmp proof.log
clean:
clean: JWX.gpr
@make -C contrib/libsparkcrypto clean
@gprclean $(COMMON_OPTS) -PJWX
@gnatprove $(COMMON_OPTS) -PJWX --clean
@rm -rf obj adalib
@rm -rf obj adalib proof.log* undefined.ciu graph.vcg
doc: JWX.gpr
@gnatdoc --no-subprojects -w --enable-build $(COMMON_OPTS) -PJWX
doc: doc/api/index.html
doc/api/index.html: JWX.gpr
@gprbuild -P JWX -Xlibtype=dynamic
@gnatdoc -q -P JWX --no-subprojects -Xlibtype=dynamic -XRTS=native -Xcallgraph=none -w -l --enable-build
@gnatdoc -P JWX --no-subprojects -Xlibtype=dynamic -XRTS=native -Xcallgraph=none -w -l --enable-build
stack: COMMON_OPTS += -Xcallgraph=su_da
stack: CALLGRAPH = su_da

9
doc/api/blank.html Normal file
View File

@ -0,0 +1,9 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="gnatdoc.css"/>
</head>
<body>
</body>
</html>

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

2874
doc/api/docs/jwx___spec.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__base64___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,848 @@
GNATdoc.Documentation = {
"label": "JWX.Base64",
"qualifier": "",
"summary": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "BASE64 decoding (RFC4648)\n"
}
]
}
],
"description": [
],
"entities": [
{
"entities": [
{
"label": "Decode",
"qualifier": "",
"line": 19,
"column": 14,
"src": "srcs/jwx-base64.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Decode",
"href": "docs/jwx__base64___spec.html#L19C14"
}
]
},
{
"kind": "line",
"number": 20,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Encoded",
"href": "docs/jwx__base64___spec.html#L20C7"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Len",
"href": "docs/jwx__base64___spec.html#L21C7"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Natural"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result",
"href": "docs/jwx__base64___spec.html#L22C7"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre =>"
}
]
},
{
"kind": "line",
"number": 25,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " ((Encoded'Length > 0"
}
]
},
{
"kind": "line",
"number": 26,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " Encoded'Length < Natural'Last / 9"
}
]
},
{
"kind": "line",
"number": 27,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " Encoded'Last < Natural'Last - 4"
}
]
},
{
"kind": "line",
"number": 28,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " Result'Length >= 3 * ((Encoded'Length + 3) / 4)))"
}
]
},
{
"kind": "line",
"number": 29,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "then"
},
{
"kind": "span",
"cssClass": "text",
"text": " Result'First < Natural'Last - 9 * Encoded'Length / 12 - 3,"
}
]
},
{
"kind": "line",
"number": 30,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Post => Len <= Result'Length"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Decode Base64 encoded string into byte array\n"
}
]
}
],
"parameters": [
{
"label": "Encoded",
"line": 20,
"column": 7,
"type": {
"label": "String"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Base64 encoded string\n"
}
]
}
]
},
{
"label": "Len",
"line": 21,
"column": 7,
"type": {
"label": "Natural"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Length of result array. Length is 0 to indicated an error.\n"
}
]
}
]
},
{
"label": "Result",
"line": 22,
"column": 7,
"type": {
"label": "JWX.Byte_Array",
"docHref": "docs/jwx___spec.html#L30C9"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Decoded data\n"
}
]
}
]
}
]
},
{
"label": "Decode_Url",
"qualifier": "",
"line": 36,
"column": 14,
"src": "srcs/jwx-base64.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 36,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Decode_Url",
"href": "docs/jwx__base64___spec.html#L36C14"
}
]
},
{
"kind": "line",
"number": 37,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Encoded",
"href": "docs/jwx__base64___spec.html#L37C7"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 38,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Len",
"href": "docs/jwx__base64___spec.html#L38C7"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Natural"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 39,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result",
"href": "docs/jwx__base64___spec.html#L39C7"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 40,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 41,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre =>"
}
]
},
{
"kind": "line",
"number": 42,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " ((Encoded'Length > 0"
}
]
},
{
"kind": "line",
"number": 43,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " Encoded'Length < Natural'Last / 9"
}
]
},
{
"kind": "line",
"number": 44,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " Encoded'Last < Natural'Last - 4"
}
]
},
{
"kind": "line",
"number": 45,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " Result'Length >= 3 * ((Encoded'Length + 3) / 4)))"
}
]
},
{
"kind": "line",
"number": 46,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "then"
},
{
"kind": "span",
"cssClass": "text",
"text": " Result'First < Natural'Last - 9 * Encoded'Length / 12 - 3,"
}
]
},
{
"kind": "line",
"number": 47,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Post => Len <= Result'Length"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Decode Base64URL encoded string into byte array\n"
}
]
}
],
"parameters": [
{
"label": "Encoded",
"line": 37,
"column": 7,
"type": {
"label": "String"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Base64URL encoded input string\n"
}
]
}
]
},
{
"label": "Len",
"line": 38,
"column": 7,
"type": {
"label": "Natural"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Length of result array. Length is 0 to indicated an error.\n"
}
]
}
]
},
{
"label": "Result",
"line": 39,
"column": 7,
"type": {
"label": "JWX.Byte_Array",
"docHref": "docs/jwx___spec.html#L30C9"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Decoded data\n"
}
]
}
]
}
]
}
],
"label": "Subprograms"
}
]
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__crypto___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,275 @@
GNATdoc.Documentation = {
"label": "JWX.Crypto",
"qualifier": "",
"summary": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Cryptographic validation of JWT payload.\n"
}
]
}
],
"description": [
],
"entities": [
{
"entities": [
{
"label": "Valid",
"qualifier": "",
"line": 19,
"column": 14,
"src": "srcs/jwx-crypto.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Valid",
"href": "docs/jwx__crypto___spec.html#L19C14"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Alg",
"href": "docs/jwx__crypto___spec.html#L19C21"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Alg_Type",
"href": "docs/jwx___spec.html#L63C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 20,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Valid_Payload",
"href": "docs/jwx__crypto___spec.html#L20C21"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Boolean"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Key'First >= 0 "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Key'Last < Natural'Last "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Key'First <= Key'Last"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Validate authenticator\n"
}
]
}
],
"parameters": [
{
"label": "Alg",
"line": 19,
"column": 21,
"type": {
"label": "JWX.Alg_Type",
"docHref": "docs/jwx___spec.html#L63C9"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Algorithm to use\n"
}
]
}
]
},
{
"label": "Valid_Payload",
"line": 20,
"column": 21,
"type": {
"label": "Boolean"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Validation result\n"
}
]
}
]
}
]
}
],
"label": "Subprograms"
}
]
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__jose___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,206 @@
GNATdoc.Documentation = {
"label": "JWX.JOSE",
"qualifier": "",
"summary": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "JOSE header decoding (RFC 7515, section 4)\n"
}
]
}
],
"description": [
],
"entities": [
{
"entities": [
{
"label": "Algorithm",
"qualifier": "",
"line": 22,
"column": 13,
"src": "srcs/jwx-jose.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "function"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Algorithm",
"href": "docs/jwx__jose___spec.html#L22C13"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "return"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Alg_Type",
"href": "docs/jwx___spec.html#L63C9"
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Valid"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Algorithm defined in JOSE header\n"
}
]
}
]
},
{
"label": "Valid",
"qualifier": "",
"line": 19,
"column": 13,
"src": "srcs/jwx-jose.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "function"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Valid",
"href": "docs/jwx__jose___spec.html#L19C13"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "return"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Boolean"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Valid JOSE header\n"
}
]
}
]
}
],
"label": "Subprograms"
}
]
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__json___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__jwk___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__jws___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__jwscs___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__jwt___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,899 @@
GNATdoc.Documentation = {
"label": "JWX.JWT",
"qualifier": "",
"summary": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "JWT validation (RFC 7519)\n"
}
]
}
],
"description": [
],
"entities": [
{
"entities": [
{
"label": "Result_Type",
"qualifier": "",
"line": 17,
"column": 9,
"src": "srcs/jwx-jwt.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 17,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "type"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Type",
"href": "docs/jwx__jwt___spec.html#L17C9"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "is"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Invalid",
"href": "docs/jwx__jwt___spec.html#L17C25"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
}
]
},
{
"kind": "line",
"number": 18,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Invalid_Key",
"href": "docs/jwx__jwt___spec.html#L18C25"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
}
]
},
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_OK",
"href": "docs/jwx__jwt___spec.html#L19C25"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
}
]
},
{
"kind": "line",
"number": 20,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Fail",
"href": "docs/jwx__jwt___spec.html#L20C25"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
}
]
},
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Invalid_Base64",
"href": "docs/jwx__jwt___spec.html#L21C25"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Invalid_Object",
"href": "docs/jwx__jwt___spec.html#L22C25"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Invalid_Audience",
"href": "docs/jwx__jwt___spec.html#L23C25"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Invalid_Issuer",
"href": "docs/jwx__jwt___spec.html#L24C25"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
}
]
},
{
"kind": "line",
"number": 25,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Expired",
"href": "docs/jwx__jwt___spec.html#L25C25"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";",
"href": "docs/jwx__jwt___spec.html#L17C9"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Result of JWT validation\n"
}
]
}
],
"literals": [
{
"label": "Result_Invalid",
"line": 17,
"column": 25,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Input data is no valid JWT\n"
}
]
}
]
},
{
"label": "Result_Invalid_Key",
"line": 18,
"column": 25,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "The key data is no valid JWK\n"
}
]
}
]
},
{
"label": "Result_OK",
"line": 19,
"column": 25,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Validation succeeded\n"
}
]
}
]
},
{
"label": "Result_Fail",
"line": 20,
"column": 25,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Validation failed\n"
}
]
}
]
},
{
"label": "Result_Invalid_Base64",
"line": 21,
"column": 25,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Base64 decoding failed for JWT\n"
}
]
}
]
},
{
"label": "Result_Invalid_Object",
"line": 22,
"column": 25,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Structure of the JWT was invalid\n"
}
]
}
]
},
{
"label": "Result_Invalid_Audience",
"line": 23,
"column": 25,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Audience encoded in JWT did not match\n"
}
]
}
]
},
{
"label": "Result_Invalid_Issuer",
"line": 24,
"column": 25,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Issuer encoded in JWT did not match\n"
}
]
}
]
},
{
"label": "Result_Expired",
"line": 25,
"column": 25,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "The JWT expired\n"
}
]
}
]
}
]
}
],
"label": "Simple types"
},
{
"entities": [
{
"label": "Validate_Compact",
"qualifier": "",
"line": 37,
"column": 13,
"src": "srcs/jwx-jwt.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 37,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "function"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Validate_Compact",
"href": "docs/jwx__jwt___spec.html#L37C13"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Data",
"href": "docs/jwx__jwt___spec.html#L37C31"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 38,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Key_Data",
"href": "docs/jwx__jwt___spec.html#L38C31"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 39,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Audience",
"href": "docs/jwx__jwt___spec.html#L39C31"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 40,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Issuer",
"href": "docs/jwx__jwt___spec.html#L40C31"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 41,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Now",
"href": "docs/jwx__jwt___spec.html#L41C31"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Long_Integer"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "return"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result_Type",
"href": "docs/jwx__jwt___spec.html#L17C9"
}
]
},
{
"kind": "line",
"number": 42,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 43,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Data'Length >= 5 "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 44,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Key_Data'First >= 0 "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 45,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Key_Data'Last < Natural'Last "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 46,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Key_Data'First <= Key_Data'Last"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Validate a JWT in compact serialization\n"
}
]
}
],
"parameters": [
{
"label": "Data",
"line": 37,
"column": 31,
"type": {
"label": "String"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "The JWT to validate\n"
}
]
}
]
},
{
"label": "Key_Data",
"line": 38,
"column": 31,
"type": {
"label": "String"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "The JWK to use for validation\n"
}
]
}
]
},
{
"label": "Audience",
"line": 39,
"column": 31,
"type": {
"label": "String"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Audience to match with JWT\n"
}
]
}
]
},
{
"label": "Issuer",
"line": 40,
"column": 31,
"type": {
"label": "String"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Issuer to match with JWT\n"
}
]
}
]
},
{
"label": "Now",
"line": 41,
"column": 31,
"type": {
"label": "Long_Integer"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Time against which to match JWT expiration time\n"
}
]
}
]
}
]
}
],
"label": "Subprograms"
}
]
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__libsparkcrypto___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,604 @@
GNATdoc.Documentation = {
"label": "JWX.Libsparkcrypto",
"qualifier": "",
"summary": [
],
"description": [
],
"entities": [
{
"entities": [
{
"label": "JWX_Byte_Array_To_LSC_SHA256_Message",
"qualifier": "",
"line": 33,
"column": 14,
"src": "srcs/jwx-libsparkcrypto.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 33,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX_Byte_Array_To_LSC_SHA256_Message",
"href": "docs/jwx__libsparkcrypto___spec.html#L33C14"
}
]
},
{
"kind": "line",
"number": 34,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Input",
"href": "docs/jwx__libsparkcrypto___spec.html#L34C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 35,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Output",
"href": "docs/jwx__libsparkcrypto___spec.html#L35C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "LSC.SHA256.Message_Type"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 36,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 37,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => ((Input'Length > 0 "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 38,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Output'Last > Output'First "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 39,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Output'Length <= LSC.SHA256.Message_Index (Integer'Last) / 64) "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "then"
}
]
},
{
"kind": "line",
"number": 40,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Input'First < Integer'Last - 64 * Output'Length - 64)"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Convert JWX byte array to LSC SHA256 message\n"
}
]
}
],
"parameters": [
{
"label": "Input",
"line": 34,
"column": 8,
"type": {
"label": "JWX.Byte_Array",
"docHref": "docs/jwx___spec.html#L30C9"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "JWX Input array\n"
}
]
}
]
},
{
"label": "Output",
"line": 35,
"column": 8,
"type": {
"label": "Message_Type"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "LSC SHA-256 message\n"
}
]
}
]
}
]
},
{
"label": "JWX_Byte_Array_To_LSC_Word32_Array",
"qualifier": "",
"line": 21,
"column": 14,
"src": "srcs/jwx-libsparkcrypto.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX_Byte_Array_To_LSC_Word32_Array",
"href": "docs/jwx__libsparkcrypto___spec.html#L21C14"
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Input",
"href": "docs/jwx__libsparkcrypto___spec.html#L22C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Output",
"href": "docs/jwx__libsparkcrypto___spec.html#L23C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "LSC.Types.Word32_Array_Type"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Offset",
"href": "docs/jwx__libsparkcrypto___spec.html#L24C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Natural"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":="
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "number",
"text": "0"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 25,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 26,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Input'First < Integer'Last - Offset - 4 * Output'Length"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Convert JWX byte array to LSC word32 array\n"
}
]
}
],
"parameters": [
{
"label": "Input",
"line": 22,
"column": 8,
"type": {
"label": "JWX.Byte_Array",
"docHref": "docs/jwx___spec.html#L30C9"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "JWX Input array\n"
}
]
}
]
},
{
"label": "Output",
"line": 23,
"column": 8,
"type": {
"label": "Word32_Array_Type"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "LSC output array\n"
}
]
}
]
},
{
"label": "Offset",
"line": 24,
"column": 8,
"type": {
"label": "Natural"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Start converting Input at Offset\n"
}
]
}
]
}
]
}
],
"label": "Subprograms"
}
]
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__stream_auth___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,529 @@
GNATdoc.Documentation = {
"label": "JWX.Stream_Auth",
"qualifier": "",
"summary": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Stream authentication checking \n"
}
]
}
],
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Given a key in the form of a JSON web key (JWK), an audience string and an\n"
},
{
"kind": "span",
"text": "issuer string, the Authenticated procedure in this package searches an input\n"
},
{
"kind": "span",
"text": "string for a JSON web token (JWT), decodes it and tries to validate it. The\n"
},
{
"kind": "span",
"text": "JWT must be present as the URL parameter \"id_token=\".\n"
}
]
}
],
"entities": [
{
"entities": [
{
"label": "Auth_Result_Type",
"qualifier": "",
"line": 24,
"column": 9,
"src": "srcs/jwx-stream_auth.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "type"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Result_Type",
"href": "docs/jwx__stream_auth___spec.html#L24C9"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "is"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_OK",
"href": "docs/jwx__stream_auth___spec.html#L24C30"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Noent",
"href": "docs/jwx__stream_auth___spec.html#L24C39"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Fail",
"href": "docs/jwx__stream_auth___spec.html#L24C51"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Invalid",
"href": "docs/jwx__stream_auth___spec.html#L24C62"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";",
"href": "docs/jwx__stream_auth___spec.html#L24C9"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Authentication result\n"
}
]
}
],
"literals": [
{
"label": "Auth_OK",
"line": 24,
"column": 30,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Authentication succeeded\n"
}
]
}
]
},
{
"label": "Auth_Noent",
"line": 24,
"column": 39,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "No JSON web token found in input data\n"
}
]
}
]
},
{
"label": "Auth_Fail",
"line": 24,
"column": 51,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "JSON web token found, but authentication failed\n"
}
]
}
]
},
{
"label": "Auth_Invalid",
"line": 24,
"column": 62,
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Unspecified error during authentication\n"
}
]
}
]
}
]
}
],
"label": "Simple types"
},
{
"entities": [
{
"label": "Authenticated",
"qualifier": "",
"line": 32,
"column": 13,
"src": "srcs/jwx-stream_auth.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 32,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "function"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Authenticated",
"href": "docs/jwx__stream_auth___spec.html#L32C13"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Buf",
"href": "docs/jwx__stream_auth___spec.html#L32C28"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 33,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Now",
"href": "docs/jwx__stream_auth___spec.html#L33C28"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Long_Integer"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "return"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Result_Type",
"href": "docs/jwx__stream_auth___spec.html#L24C9"
}
]
},
{
"kind": "line",
"number": 34,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 35,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Buf'First >= JWX.Data_Index'First "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 36,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Buf'Last <= JWX.Data_Index'Last "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 37,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Buf'Last < Natural'Last - 9 "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 38,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Buf'Length > 9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Check whether string contains valid authentication token\n"
}
]
}
],
"parameters": [
{
"label": "Buf",
"line": 32,
"column": 28,
"type": {
"label": "String"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "String buffer to validate\n"
}
]
}
]
},
{
"label": "Now",
"line": 33,
"column": 28,
"type": {
"label": "Long_Integer"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Current time as a UNIX Epoch (seconds since 1.1.1970)\n"
}
]
}
]
}
]
}
],
"label": "Subprograms"
}
]
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx__util___spec.js" defer></script>
</head>
<body onload="onDocumentationLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,474 @@
GNATdoc.Documentation = {
"label": "JWX.Util",
"qualifier": "",
"summary": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "JWX utility functions\n"
}
]
}
],
"description": [
],
"entities": [
{
"entities": [
{
"label": "To_Byte_Array",
"qualifier": "",
"line": 18,
"column": 14,
"src": "srcs/jwx-util.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 18,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "To_Byte_Array",
"href": "docs/jwx__util___spec.html#L18C14"
}
]
},
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Data",
"href": "docs/jwx__util___spec.html#L19C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 20,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result",
"href": "docs/jwx__util___spec.html#L20C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Result'Length >= Data'Length"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Convert a string into an equivalent byte array\n"
}
]
}
],
"parameters": [
{
"label": "Data",
"line": 19,
"column": 8,
"type": {
"label": "String"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Input string\n"
}
]
}
]
},
{
"label": "Result",
"line": 20,
"column": 8,
"type": {
"label": "JWX.Byte_Array",
"docHref": "docs/jwx___spec.html#L30C9"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Converted byte array\n"
}
]
}
]
}
]
},
{
"label": "To_String",
"qualifier": "",
"line": 27,
"column": 14,
"src": "srcs/jwx-util.ads.html",
"summary": [
],
"description": [
{
"kind": "code",
"children": [
{
"kind": "line",
"number": 27,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "To_String",
"href": "docs/jwx__util___spec.html#L27C14"
}
]
},
{
"kind": "line",
"number": 28,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Data",
"href": "docs/jwx__util___spec.html#L28C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 29,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result",
"href": "docs/jwx__util___spec.html#L29C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 30,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 31,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Result'Length >= Data'Length"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
]
},
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Convert a byte array into an equivalent string\n"
}
]
}
],
"parameters": [
{
"label": "Data",
"line": 28,
"column": 8,
"type": {
"label": "JWX.Byte_Array",
"docHref": "docs/jwx___spec.html#L30C9"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Input byte array\n"
}
]
}
]
},
{
"label": "Result",
"line": 29,
"column": 8,
"type": {
"label": "String"
},
"description": [
{
"kind": "paragraph",
"children": [
{
"kind": "span",
"text": "Converted string\n"
}
]
}
]
}
]
}
],
"label": "Subprograms"
}
]
};

View File

@ -0,0 +1,62 @@
GNATdoc.DocumentationIndex = [
{
"label": "JWX",
"qualifier": "",
"file": "docs/jwx___spec.html"
},
{
"label": "JWX.Base64",
"qualifier": "",
"file": "docs/jwx__base64___spec.html"
},
{
"label": "JWX.Crypto",
"qualifier": "",
"file": "docs/jwx__crypto___spec.html"
},
{
"label": "JWX.JOSE",
"qualifier": "",
"file": "docs/jwx__jose___spec.html"
},
{
"label": "JWX.JSON",
"qualifier": "",
"file": "docs/jwx__json___spec.html"
},
{
"label": "JWX.JWK",
"qualifier": "",
"file": "docs/jwx__jwk___spec.html"
},
{
"label": "JWX.JWS",
"qualifier": "",
"file": "docs/jwx__jws___spec.html"
},
{
"label": "JWX.JWSCS",
"qualifier": "",
"file": "docs/jwx__jwscs___spec.html"
},
{
"label": "JWX.JWT",
"qualifier": "",
"file": "docs/jwx__jwt___spec.html"
},
{
"label": "JWX.Libsparkcrypto",
"qualifier": "",
"file": "docs/jwx__libsparkcrypto___spec.html"
},
{
"label": "JWX.Stream_Auth",
"qualifier": "",
"file": "docs/jwx__stream_auth___spec.html"
},
{
"label": "JWX.Util",
"qualifier": "",
"file": "docs/jwx__util___spec.html"
}
];

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="objects.js" defer></script>
</head>
<body onload="onEntitiesCategoryLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,61 @@
GNATdoc.EntitiesCategory = {
"label": "Constants & Variables",
"entities": [
{
"label": "Empty_Key_Array",
"docHref": "docs/jwx__jwk___spec.html#L54C4",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L54"
},
{
"label": "Empty_Range",
"docHref": "docs/jwx___spec.html#L43C4",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L43"
},
{
"label": "End_Index",
"docHref": "docs/jwx__json___spec.html#L63C4",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L63"
},
{
"label": "Invalid_Key",
"docHref": "docs/jwx__jwk___spec.html#L51C4",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L51"
},
{
"label": "Null_Index",
"docHref": "docs/jwx__json___spec.html#L62C4",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L62"
},
{
"label": "Result_Fail",
"docHref": "docs/jwx__jws___spec.html#L43C4",
"declared": "JWX.JWS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jws.ads.html#L43"
},
{
"label": "Result_Invalid",
"docHref": "docs/jwx__jws___spec.html#L42C4",
"declared": "JWX.JWS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jws.ads.html#L42"
},
{
"label": "Result_Invalid_Key",
"docHref": "docs/jwx__jws___spec.html#L44C4",
"declared": "JWX.JWS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jws.ads.html#L44"
}
]
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="record_types.js" defer></script>
</head>
<body onload="onEntitiesCategoryLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,26 @@
GNATdoc.EntitiesCategory = {
"label": "Record Types",
"entities": [
{
"label": "Key_Type",
"docHref": "docs/jwx__jwk___spec.html#L50C9",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L50"
},
{
"label": "Range_Type",
"docHref": "docs/jwx___spec.html#L35C9",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L35"
},
{
"label": "Result_Type",
"docHref": "docs/jwx__jws___spec.html#L28C9",
"declared": "JWX.JWS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jws.ads.html#L28"
}
]
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="simple_types.js" defer></script>
</head>
<body onload="onEntitiesCategoryLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,131 @@
GNATdoc.EntitiesCategory = {
"label": "Simple Types",
"entities": [
{
"label": "Alg_Type",
"docHref": "docs/jwx___spec.html#L63C9",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L63"
},
{
"label": "Array_Index",
"docHref": "docs/jwx___spec.html#L28C12",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L28"
},
{
"label": "Auth_Result_Type",
"docHref": "docs/jwx__stream_auth___spec.html#L24C9",
"declared": "JWX.Stream_Auth",
"declared_qualifier": "",
"srcHref": "srcs/jwx-stream_auth.ads.html#L24"
},
{
"label": "Byte",
"docHref": "docs/jwx___spec.html#L19C9",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L19"
},
{
"label": "Byte_Array",
"docHref": "docs/jwx___spec.html#L30C9",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L30"
},
{
"label": "Data_Index",
"docHref": "docs/jwx___spec.html#L33C12",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L33"
},
{
"label": "EC_Curve_Type",
"docHref": "docs/jwx__jwk___spec.html#L38C9",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L38"
},
{
"label": "Error_Type",
"docHref": "docs/jwx__jws___spec.html#L17C9",
"declared": "JWX.JWS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jws.ads.html#L17"
},
{
"label": "Index_Type",
"docHref": "docs/jwx__json___spec.html#L61C9",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L61"
},
{
"label": "Integer_Type",
"docHref": "docs/jwx___spec.html#L22C9",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L22"
},
{
"label": "Key_Array_Type",
"docHref": "docs/jwx__jwk___spec.html#L53C9",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L53"
},
{
"label": "Kind_Type",
"docHref": "docs/jwx__json___spec.html#L27C9",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L27"
},
{
"label": "Kind_Type",
"docHref": "docs/jwx__jwk___spec.html#L16C9",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L16"
},
{
"label": "Match_Type",
"docHref": "docs/jwx__json___spec.html#L46C9",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L46"
},
{
"label": "Real_Type",
"docHref": "docs/jwx___spec.html#L24C9",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L24"
},
{
"label": "Result_Type",
"docHref": "docs/jwx__jwt___spec.html#L17C9",
"declared": "JWX.JWT",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwt.ads.html#L17"
},
{
"label": "UInt6",
"docHref": "docs/jwx___spec.html#L16C9",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L16"
},
{
"label": "Use_Type",
"docHref": "docs/jwx__jwk___spec.html#L28C9",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L28"
}
]
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="subprograms.js" defer></script>
</head>
<body onload="onEntitiesCategoryLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,355 @@
GNATdoc.EntitiesCategory = {
"label": "Subprograms",
"entities": [
{
"label": "Algorithm",
"docHref": "docs/jwx__jose___spec.html#L22C13",
"declared": "JWX.JOSE",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jose.ads.html#L22"
},
{
"label": "Algorithm",
"docHref": "docs/jwx__jwk___spec.html#L84C13",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L84"
},
{
"label": "Algorithm",
"docHref": "docs/jwx___spec.html#L94C13",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L94"
},
{
"label": "Authenticated",
"docHref": "docs/jwx__stream_auth___spec.html#L32C13",
"declared": "JWX.Stream_Auth",
"declared_qualifier": "",
"srcHref": "srcs/jwx-stream_auth.ads.html#L32"
},
{
"label": "Curve",
"docHref": "docs/jwx__jwk___spec.html#L113C13",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L113"
},
{
"label": "D",
"docHref": "docs/jwx__jwk___spec.html#L144C14",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L144"
},
{
"label": "Decode",
"docHref": "docs/jwx__base64___spec.html#L19C14",
"declared": "JWX.Base64",
"declared_qualifier": "",
"srcHref": "srcs/jwx-base64.ads.html#L19"
},
{
"label": "Decode_Url",
"docHref": "docs/jwx__base64___spec.html#L36C14",
"declared": "JWX.Base64",
"declared_qualifier": "",
"srcHref": "srcs/jwx-base64.ads.html#L36"
},
{
"label": "E",
"docHref": "docs/jwx__jwk___spec.html#L132C14",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L132"
},
{
"label": "Elements",
"docHref": "docs/jwx__json___spec.html#L149C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L149"
},
{
"label": "Get_Boolean",
"docHref": "docs/jwx__json___spec.html#L91C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L91"
},
{
"label": "Get_Integer",
"docHref": "docs/jwx__json___spec.html#L106C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L106"
},
{
"label": "Get_Kind",
"docHref": "docs/jwx__json___spec.html#L83C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L83"
},
{
"label": "Get_Range",
"docHref": "docs/jwx__json___spec.html#L120C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L120"
},
{
"label": "Get_Real",
"docHref": "docs/jwx__json___spec.html#L98C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L98"
},
{
"label": "Get_String",
"docHref": "docs/jwx__json___spec.html#L113C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L113"
},
{
"label": "Has_Kind",
"docHref": "docs/jwx__json___spec.html#L74C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L74"
},
{
"label": "ID",
"docHref": "docs/jwx__jwk___spec.html#L69C13",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L69"
},
{
"label": "In_Range",
"docHref": "docs/jwx___spec.html#L46C13",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L46"
},
{
"label": "JOSE_Data",
"docHref": "docs/jwx__jwscs___spec.html#L34C13",
"declared": "JWX.JWSCS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwscs.ads.html#L34"
},
{
"label": "JOSE_Length",
"docHref": "docs/jwx__jwscs___spec.html#L29C13",
"declared": "JWX.JWSCS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwscs.ads.html#L29"
},
{
"label": "JWX_Byte_Array_To_LSC_SHA256_Message",
"docHref": "docs/jwx__libsparkcrypto___spec.html#L33C14",
"declared": "JWX.Libsparkcrypto",
"declared_qualifier": "",
"srcHref": "srcs/jwx-libsparkcrypto.ads.html#L33"
},
{
"label": "JWX_Byte_Array_To_LSC_Word32_Array",
"docHref": "docs/jwx__libsparkcrypto___spec.html#L21C14",
"declared": "JWX.Libsparkcrypto",
"declared_qualifier": "",
"srcHref": "srcs/jwx-libsparkcrypto.ads.html#L21"
},
{
"label": "K",
"docHref": "docs/jwx__jwk___spec.html#L156C14",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L156"
},
{
"label": "Kind",
"docHref": "docs/jwx__jwk___spec.html#L64C13",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L64"
},
{
"label": "Length",
"docHref": "docs/jwx__json___spec.html#L156C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L156"
},
{
"label": "Length",
"docHref": "docs/jwx___spec.html#L56C13",
"declared": "JWX",
"declared_qualifier": "",
"srcHref": "srcs/jwx.ads.html#L56"
},
{
"label": "N",
"docHref": "docs/jwx__jwk___spec.html#L120C14",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L120"
},
{
"label": "Parse",
"docHref": "docs/jwx__json___spec.html#L65C14",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L65"
},
{
"label": "Parse_Keys",
"docHref": "docs/jwx__jwk___spec.html#L57C13",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L57"
},
{
"label": "Payload",
"docHref": "docs/jwx__jwscs___spec.html#L39C13",
"declared": "JWX.JWSCS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwscs.ads.html#L39"
},
{
"label": "Payload_First",
"docHref": "docs/jwx__jwscs___spec.html#L44C13",
"declared": "JWX.JWSCS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwscs.ads.html#L44"
},
{
"label": "Payload_Last",
"docHref": "docs/jwx__jwscs___spec.html#L50C13",
"declared": "JWX.JWSCS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwscs.ads.html#L50"
},
{
"label": "Pos",
"docHref": "docs/jwx__json___spec.html#L164C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L164"
},
{
"label": "Private_Key",
"docHref": "docs/jwx__jwk___spec.html#L74C13",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L74"
},
{
"label": "Query_Object",
"docHref": "docs/jwx__json___spec.html#L138C13",
"declared": "JWX.JSON",
"declared_qualifier": "",
"srcHref": "srcs/jwx-json.ads.html#L138"
},
{
"label": "Signature",
"docHref": "docs/jwx__jwscs___spec.html#L62C13",
"declared": "JWX.JWSCS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwscs.ads.html#L62"
},
{
"label": "Signature_Input",
"docHref": "docs/jwx__jwscs___spec.html#L57C13",
"declared": "JWX.JWSCS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwscs.ads.html#L57"
},
{
"label": "Split",
"docHref": "docs/jwx__jwscs___spec.html#L21C14",
"declared": "JWX.JWSCS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwscs.ads.html#L21"
},
{
"label": "To_Byte_Array",
"docHref": "docs/jwx__util___spec.html#L18C14",
"declared": "JWX.Util",
"declared_qualifier": "",
"srcHref": "srcs/jwx-util.ads.html#L18"
},
{
"label": "To_String",
"docHref": "docs/jwx__util___spec.html#L27C14",
"declared": "JWX.Util",
"declared_qualifier": "",
"srcHref": "srcs/jwx-util.ads.html#L27"
},
{
"label": "Usage",
"docHref": "docs/jwx__jwk___spec.html#L79C13",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L79"
},
{
"label": "Valid",
"docHref": "docs/jwx__crypto___spec.html#L19C14",
"declared": "JWX.Crypto",
"declared_qualifier": "",
"srcHref": "srcs/jwx-crypto.ads.html#L19"
},
{
"label": "Valid",
"docHref": "docs/jwx__jose___spec.html#L19C13",
"declared": "JWX.JOSE",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jose.ads.html#L19"
},
{
"label": "Valid",
"docHref": "docs/jwx__jwscs___spec.html#L16C13",
"declared": "JWX.JWSCS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwscs.ads.html#L16"
},
{
"label": "Valid_Result",
"docHref": "docs/jwx__jws___spec.html#L46C13",
"declared": "JWX.JWS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jws.ads.html#L46"
},
{
"label": "Validate_Compact",
"docHref": "docs/jwx__jws___spec.html#L56C13",
"declared": "JWX.JWS",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jws.ads.html#L56"
},
{
"label": "Validate_Compact",
"docHref": "docs/jwx__jwt___spec.html#L37C13",
"declared": "JWX.JWT",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwt.ads.html#L37"
},
{
"label": "X",
"docHref": "docs/jwx__jwk___spec.html#L89C14",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L89"
},
{
"label": "Y",
"docHref": "docs/jwx__jwk___spec.html#L101C14",
"declared": "JWX.JWK",
"declared_qualifier": "",
"srcHref": "srcs/jwx-jwk.ads.html#L101"
}
]
};

View File

@ -0,0 +1,18 @@
GNATdoc.EntitiesCategoriesIndex = [
{
"label": "Constants & Variables",
"href": "entities/objects.html"
},
{
"label": "Simple Types",
"href": "entities/simple_types.html"
},
{
"label": "Record Types",
"href": "entities/record_types.html"
},
{
"label": "Subprograms",
"href": "entities/subprograms.html"
}
];

300
doc/api/gnatdoc.css Normal file
View File

@ -0,0 +1,300 @@
html, body {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px;
border: 0px;
outline: 0px;
font-family: "open-sans", Arial, sans-serif;
font-size: 13px;
}
iframe {
border: 0;
overflow: auto;
display: block;
}
table {
border-spacing: 0;
border-collapse: collapse;
}
td {
margin: 0;
padding: 0;
}
.comment {
color: #999988;
font-style: italic;
}
.keyword {
font-weight: bold;
}
#toc {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 30%;
overflow: auto;
background-color: #111;
}
#toc p.projectName {
margin-top: 20px;
margin-left: 20px;
margin-bottom: 0;
color: #bbb;
font-size: 150%;
}
#toc p.documentationTimestamp {
margin-left: 20px;
margin-bottom: 20px;
color: #bbb;
font-size: 80%;
}
#toc table {
width: 100%;
}
#tocMenu {
position: fixed;
width: 90px;
vertical-align: top;
}
#tocMenu ul {
padding-left: 5px;
}
#tocMenu li {
list-style: none;
padding: 10px;
text-align: center;
}
#tocMenu li.current {
background-color: #222;
}
#tocMenu a {
color: white;
text-decoration: none;
outline: 0;
}
#tocViewLayout {
/* margin-left can't be used here due to bug in IE8, so we use padding-left instead */
padding-left: 90px;
}
#tocView {
width: 100%;
color: #bbb;
font-weight: 300;
display: inline-block;
background-color: #222;
}
#tocView ul {
padding-left: 10px;
margin: 0;
}
#tocView li {
list-style: none;
border-top: 1px #2d2d2d solid;
}
#tocView li:last-child {
border-bottom: 1px #2d2d2d solid;
}
#tocView li a {
display: block;
color: #bbb;
text-decoration: none;
background: transparent;
line-height: 22px;
padding-left: 10px;
}
#tocView li a:active, #tocView li a:focus {
color: #e3bc28;
}
#tocView li a:hover {
background-color: #111;
}
#tocView h1,
#tocView h1 a {
font-size: 16px;
font-weight: 300;
color: white;
}
#tocView h1 {
margin-left: 10px;
}
#tocView h1 a {
text-decoration: none;
}
#tocView h1 a:hover {
color: #e3bc28;
}
#content {
border: 0px;
position: absolute;
top: 0;
right: 0;
width: 70%;
height: 100%;
}
#contentView {
width: 100%;
height: 100%;
}
table.code {
border-width: 1px;
border-color: #D7D7D7;
border-style: solid;
}
table.code tbody th {
font-size: 12px;
text-align: right;
font-weight: normal;
}
table.code tr {
padding: 3px;
}
table.code th {
background-color: #eee;
border-right: 1px solid #d7d7d7;
}
table.code td,
table.code th {
padding: 2px 4px;
}
table.code td {
font-size: 12px;
font-family: Inconsolata, monospace;
white-space: pre;
}
table.entities tr, table.entities td, table.entities th {
text-align: left;
}
table#frameSet {
width: 100%;
height: 100%;
position: relative;
}
h1, h2, h3 {
margin: 0;
}
h1 {
font-size: 26px;
padding: 15px 0;
}
h2 {
font-size: 16px;
padding: 10px 0;
}
#body {
width: auto;
height: auto;
margin: 10px 10px 0 20px;
padding-bottom: 10px;
}
#body h2, #body h3 {
font-weight: 300;
}
#body h2 {
text-transform: uppercase;
padding: 20px 0 15px 0;
}
#body h3 {
padding: 15px 0 10px 0;
margin-left: 10px;
color: #333;
}
#body h2:first-child {
padding-top: 10px;
}
#body h2 + h3 {
padding-top: 0;
}
#body a {
color: #15c;
text-decoration: none;
font-weight: 300;
}
#body a:hover {
color: #0b2e40;
}
#body table.code, #body table.entities, #body dl, #body p {
margin-left: 20px;
}
#body dl {
color: #008800;
font-family: Inconsolata, monospace;
margin-bottom: 0;
}
#body p {
color: #4d4d4d;
}
#body sup.srcHref {
font-size: 8px;
}
#body th.target {
background-color: #FFFFBB;
}
p.preformatted {
white-space: pre;
font-family: monospace;
}

988
doc/api/gnatdoc.js Normal file
View File

@ -0,0 +1,988 @@
/**
* A namespace that contains all the information generated by the compiler. See
* the documentation of the fields below.
*
* @constructor
*/
function GNATdoc() {}
/**
* Possible kinds for entities
* @enum {string}
*/
GNATdoc.EntityKind = {
CODE: 'code',
PARAGRAPH: 'paragraph',
UL: 'ul',
LI: 'li',
SPAN: 'span',
IMAGE: 'image',
HTML: 'html'
};
/**
* The data for main page
* @typedef {{project:string, timestamp:string}}
*/
GNATdoc.Index;
/**
* The data that describes an entity
* @typedef {{line: {number:Number},
* column: {number:Number},
* href: string,
* text: string,
* cssClass: string,
* kind: GNATdoc.EntityKind,
* children: Array.<GNATdoc.Entity>}}
*/
GNATdoc.Entity;
/**
* ???
* @type {{label:string, summary:string, entities:Array.<GNATdoc.Entity>, description:string}}
*/
GNATdoc.Documentation;
/**
* ???
* @type {Array}
*/
GNATdoc.DocumentationIndex = [];
/**
* ???
* @type {Array}
*/
GNATdoc.EntitiesCategoriesIndex = [];
/**
* ???
* @type {Array}
*/
GNATdoc.EntitiesCategory = [];
/**
* ???
* @type {Array}
*/
GNATdoc.InheritanceIndex = [];
/**
* ???
* @type {Array}
*/
GNATdoc.SourceFile = [];
/**
* ???
* @type {Array}
*/
GNATdoc.SourceFileIndex = [];
/**
* Creates HTML element and sets its 'className' property.
*
* @param {String} tagName The tag name of created element
* @param {String} cssClass Name of CSS class
*/
function createElementAndSetClass(tagName, cssClass) {
var element = document.createElement(tagName);
if (cssClass !== undefined) {
element.className = cssClass;
}
return element;
}
/**
* ???
*
* @param {Element} root The element to which we add the documentation.
* @param {Array.<GNATdoc.Entity>} data The data to convert.
*/
function buildText(root, data) {
/** @type {Element} */
var element;
for (var index = 0; index < data.length; index++) {
switch (data[index].kind) {
case GNATdoc.EntityKind.CODE:
element = document.createElement('table');
element.className = 'code';
element.cellPadding = 0;
element.cellSpacing = 0;
var code = document.createElement('tbody');
for (var lineIndex = 0;
lineIndex < data[index].children.length;
lineIndex++)
{
var line = data[index].children[lineIndex];
var row = document.createElement('tr');
var cell = document.createElement('th');
cell.id = 'L' + line.number.toString();
cell.appendChild(document.createTextNode(line.number));
row.appendChild(cell);
cell = document.createElement('td');
buildText(cell, line.children);
row.appendChild(cell);
code.appendChild(row);
}
element.appendChild(code);
break;
case GNATdoc.EntityKind.PARAGRAPH:
element = createElementAndSetClass('p', data[index].cssClass);
buildText(element, data[index].children);
break;
case GNATdoc.EntityKind.UL:
element = createElementAndSetClass('ul', data[index].cssClass);
buildText(element, data[index].children);
break;
case GNATdoc.EntityKind.LI:
element = createElementAndSetClass('li', data[index].cssClass);
buildText(element, data[index].children);
break;
case GNATdoc.EntityKind.SPAN:
element = document.createElement('span');
if (data[index].href !== undefined) {
var a = document.createElement('a');
var isAbsoluteURL = new RegExp('^(?:[a-z]+:)?//', 'i');
// When URL is absolute use it as is, otherwise apply
// correction to point to expected location.
a.href =
isAbsoluteURL.test(data[index].href) ?
data[index].href :
'../' + data[index].href;
a.appendChild(document.createTextNode(data[index].text));
element.appendChild(a);
} else {
element.appendChild(
document.createTextNode(data[index].text));
}
if (data[index].cssClass !== undefined) {
element.className = data[index].cssClass;
}
break;
case GNATdoc.EntityKind.IMAGE:
element = document.createElement('img');
element.src = data[index].src;
break;
case GNATdoc.EntityKind.HTML:
element = document.createElement('span');
element.innerHTML = data[index].html;
break;
}
root.appendChild(element);
}
}
/**
* ???
*/
function buildInstantiationInformation(pane, entity) {
// Display instantiation information
if (entity.instantiation !== undefined) {
var paragraph = document.createElement('p');
paragraph.appendChild(
document.createTextNode('Instantiation of '));
var href = document.createElement('a');
href.href = '../' + entity.instantiation.docHref;
href.target = 'contentView';
href.appendChild(
document.createTextNode(entity.instantiation.label));
paragraph.appendChild(href);
pane.appendChild(paragraph);
}
}
/**
* ???
*/
function buildDocumentationPage() {
var pane = document.getElementById('body');
/* Build 'Summary' section */
var header = document.createElement('h1');
var text = document.createTextNode(GNATdoc.Documentation.label);
if (GNATdoc.Documentation.qualifier != '') {
text.appendData(' ');
text.appendData(GNATdoc.Documentation.qualifier);
}
header.appendChild(text);
pane.appendChild(header);
buildText(pane, GNATdoc.Documentation.summary);
var a = document.createElement('a');
a.href = '#Description';
text = document.createTextNode('More...');
a.appendChild(text);
pane.appendChild(a);
/* Build 'Entities' section */
header = document.createElement('h2');
text = document.createTextNode('Entities');
header.appendChild(text);
pane.appendChild(header);
for (var index = 0; index < GNATdoc.Documentation.entities.length; index++)
{
var entity_set = GNATdoc.Documentation.entities[index];
header = document.createElement('h3');
text = document.createTextNode(entity_set.label);
header.appendChild(text);
pane.appendChild(header);
var table = document.createElement('table');
table.className = 'entities';
table.cellPadding = 0;
table.cellSpacing = 0;
var tbody = document.createElement('tbody');
for (var eindex = 0; eindex < entity_set.entities.length; eindex++) {
var entity = entity_set.entities[eindex];
var row = document.createElement('tr');
var cell = document.createElement('td');
var href = document.createElement('a');
if (entity.href !== undefined) {
href.href = entity.href;
} else {
href.href = '#L' + entity.line.toString() +
'C' + entity.column.toString();
}
href.appendChild(document.createTextNode(entity.label));
cell.appendChild(href);
if (entity.qualifier !== '')
{
cell.appendChild(
document.createTextNode(' ' + entity.qualifier));
}
row.appendChild(cell);
cell = document.createElement('td');
buildText(cell, entity.summary);
row.appendChild(cell);
tbody.appendChild(row);
}
table.appendChild(tbody);
pane.appendChild(table);
}
/* Build 'Description' section */
header = document.createElement('h2');
header.id = 'Description';
text = document.createTextNode('Description');
header.appendChild(text);
pane.appendChild(header);
buildText(pane, GNATdoc.Documentation.description);
// Display renaming information
if (GNATdoc.Documentation.renaming !== undefined) {
var paragraph = document.createElement('p');
paragraph.appendChild(
document.createTextNode('Renaming of '));
href = document.createElement('a');
href.href = '../' + GNATdoc.Documentation.renaming.docHref;
href.target = 'contentView';
href.appendChild(
document.createTextNode(GNATdoc.Documentation.renaming.label));
paragraph.appendChild(href);
pane.appendChild(paragraph);
}
buildInstantiationInformation(pane, GNATdoc.Documentation);
/* Build entities description sections */
for (var index = 0; index < GNATdoc.Documentation.entities.length; index++)
{
var entity_set = GNATdoc.Documentation.entities[index];
for (var eindex = 0; eindex < entity_set.entities.length; eindex++) {
var list = null;
var entity = entity_set.entities[eindex];
var titleText;
if (entity.href === undefined) {
titleText = entity.label;
if (entity.qualifier !== '')
titleText += ' ' + entity.qualifier;
header = document.createElement('h3');
header.id = 'L' + entity.line.toString() +
'C' + entity.column.toString();
header.appendChild(document.createTextNode(titleText));
if (entity.src !== undefined) {
var sup = document.createElement('sup');
sup.className = 'srcHref';
href = document.createElement('a');
href.href = '../' + entity.src +
'#L' + entity.line.toString();
href.appendChild(document.createTextNode(' [source]'));
sup.appendChild(href);
header.appendChild(sup);
}
pane.appendChild(header);
buildText(pane, entity.description);
if (entity.inherits !== undefined) {
var paragraph = document.createElement('p');
paragraph.appendChild(document.createTextNode('Inherits '));
for (var iindex = 0;
iindex < entity.inherits.length;
iindex++)
{
if (iindex != 0) {
paragraph.appendChild(document.createTextNode(', '));
}
if (entity.inherits[iindex].docHref === undefined) {
paragraph.appendChild(
document.createTextNode(
entity.inherits[iindex].label));
} else {
href = document.createElement('a');
href.href = '../' + entity.inherits[iindex].docHref;
href.target = 'contentView';
href.appendChild(
document.createTextNode(
entity.inherits[iindex].label));
paragraph.appendChild(href);
}
}
pane.appendChild(paragraph);
}
if (entity.inherited !== undefined) {
var paragraph = document.createElement('p');
paragraph.appendChild(
document.createTextNode('Inherited by '));
for (var iindex = 0;
iindex < entity.inherited.length;
iindex++)
{
if (iindex != 0) {
paragraph.appendChild(document.createTextNode(', '));
}
href = document.createElement('a');
href.href = '../' + entity.inherited[iindex].docHref;
href.target = 'contentView';
href.appendChild(
document.createTextNode(
entity.inherited[iindex].label));
paragraph.appendChild(href);
}
pane.appendChild(paragraph);
}
// Display instantiation information
buildInstantiationInformation(pane, entity);
if (entity.generic_parameters !== undefined) {
list = document.createElement('dl');
for (var pindex = 0;
pindex < entity.generic_parameters.length;
pindex++)
{
var parameter = entity.generic_parameters[pindex];
var term = document.createElement('dt');
term.id = 'L' + parameter.line.toString() +
'C' + parameter.column.toString();
term.appendChild(
document.createTextNode(parameter.label));
var description = document.createElement('dd');
buildText(description, parameter.description);
list.appendChild(term);
list.appendChild(description);
}
}
if (entity.parameters !== undefined) {
list = list || document.createElement('dl');
for (var pindex = 0;
pindex < entity.parameters.length;
pindex++)
{
var parameter = entity.parameters[pindex];
var term = document.createElement('dt');
term.id = 'L' + parameter.line.toString() +
'C' + parameter.column.toString();
term.appendChild(
document.createTextNode(parameter.label));
term.appendChild(
document.createTextNode(' of type '));
if (parameter.type.docHref !== undefined)
{
href = document.createElement('a');
href.href = '../' + parameter.type.docHref;
href.target = 'contentView';
} else {
href = document.createElement('span');
}
href.appendChild(
document.createTextNode(parameter.type.label));
term.appendChild(href);
var description = document.createElement('dd');
buildText(description, parameter.description);
list.appendChild(term);
list.appendChild(description);
}
}
if (entity.returns !== undefined) {
list = list || document.createElement('dl');
var term = document.createElement('dt');
term.appendChild(document.createTextNode('Return value'));
if (entity.returns.type !== undefined) {
term.appendChild(document.createTextNode(' of type '));
if (entity.returns.type.docHref !== undefined)
{
href = document.createElement('a');
href.href = '../' + entity.returns.type.docHref;
href.target = 'contentView';
} else {
href = document.createElement('span');
}
href.appendChild(
document.createTextNode(entity.returns.type.label));
term.appendChild(href);
}
var description = document.createElement('dd');
buildText(description, entity.returns.description);
list.appendChild(term);
list.appendChild(description);
}
if (entity.exceptions !== undefined) {
list = list || document.createElement('dl');
var term = document.createElement('dt');
term.appendChild(document.createTextNode('Exceptions'));
var description = document.createElement('dd');
buildText(description, entity.exceptions.description);
list.appendChild(term);
list.appendChild(description);
}
if (entity.fields !== undefined) {
list = document.createElement('dl');
for (var findex = 0;
findex < entity.fields.length;
findex++)
{
var field = entity.fields[findex];
var term = document.createElement('dt');
term.id = 'L' + field.line.toString() +
'C' + field.column.toString();
term.appendChild(
document.createTextNode(field.label));
term.appendChild(
document.createTextNode(' of type '));
if (field.type.docHref !== undefined)
{
href = document.createElement('a');
href.href = '../' + field.type.docHref;
href.target = 'contentView';
} else {
href = document.createElement('span');
}
href.appendChild(
document.createTextNode(field.type.label));
term.appendChild(href);
var description = document.createElement('dd');
buildText(description, field.description);
list.appendChild(term);
list.appendChild(description);
}
}
// For enumeration types generate description of each
// enumeration literal.
if (entity.literals !== undefined) {
list = document.createElement('dl');
for (var lindex = 0;
lindex < entity.literals.length;
lindex++)
{
var literal = entity.literals[lindex];
var term = document.createElement('dt');
term.id = 'L' + literal.line.toString() +
'C' + literal.column.toString();
term.appendChild(
document.createTextNode(literal.label));
var description = document.createElement('dd');
buildText(description, literal.description);
list.appendChild(term);
list.appendChild(description);
}
}
if (list != null) {
pane.appendChild(list);
}
}
}
}
}
/**
* ???
* @param {Object} entries ???.
*/
function buildPackagesIndexList(entries) {
var list = document.createElement('ul');
for (var index = 0; index < entries.length; index++)
{
var entry = entries[index];
var item = document.createElement('li');
var href = document.createElement('a');
if (entry.items == undefined) {
href.href = entry.file;
href.target = 'contentView';
text = document.createTextNode(entry.label);
if (entry.qualifier != '') {
text.appendData(' ');
text.appendData(entry.qualifier);
}
href.appendChild(text);
item.appendChild(href);
list.appendChild(item);
} else {
href.href = 'blank.html';
href.target = 'contentView';
href.appendChild(document.createTextNode(entry.label));
item.appendChild(href);
item.appendChild(buildPackagesIndexList(entry.items));
list.appendChild(item);
}
}
return list;
}
/**
* ???
* @param {Object} toc ???.
*/
function buildPackagesIndex(toc) {
var list = buildPackagesIndexList(GNATdoc.DocumentationIndex);
list.style.display = 'none';
list.id = 'packagesAndClasses';
toc.appendChild(list);
}
/**
* ???
* @param {Object} toc ???.
*/
function buildEntitiesCategoriesIndex(toc) {
var list = document.createElement('ul');
for (var idx = 0; idx < GNATdoc.EntitiesCategoriesIndex.length; idx++) {
var item = document.createElement('li');
var href = document.createElement('a');
var entry = GNATdoc.EntitiesCategoriesIndex[idx];
href.href = entry.href;
href.target = 'contentView';
href.appendChild(document.createTextNode(entry.label));
item.appendChild(href);
list.appendChild(item);
}
toc.appendChild(list);
list.style.display = 'none';
list.id = 'entities';
}
/**
* ???
* @param {Object} toc ???.
*/
function buildSourcesIndex(toc) {
var list = document.createElement('ul');
for (var idx = 0; idx < GNATdoc.SourceFileIndex.length; idx++) {
var source = GNATdoc.SourceFileIndex[idx];
var item = document.createElement('li');
var href = document.createElement('a');
text = document.createTextNode(source.label);
href.href = source.srcHref;
href.target = 'contentView';
href.appendChild(text);
item.appendChild(href);
list.appendChild(item);
}
toc.appendChild(list);
list.style.display = 'none';
list.id = 'sources';
}
/**
* ???
*/
function buildEntitiesCategoryPage() {
var header = document.createElement('h1');
var character = '';
var list = document.createElement('dl');
var page = document.getElementById('body');
header.appendChild(document.createTextNode(GNATdoc.EntitiesCategory.label));
page.appendChild(header);
for (var idx = 0; idx < GNATdoc.EntitiesCategory.entities.length; idx++) {
var item;
var entity = GNATdoc.EntitiesCategory.entities[idx];
if (character == '' || character != entity.label[0].toUpperCase()) {
character = entity.label[0].toUpperCase();
item = document.createElement('dt');
item.appendChild(document.createTextNode(character));
list.appendChild(item);
}
item = document.createElement('dd');
var href = document.createElement('a');
href.href = '../' + entity.docHref;
href.appendChild(document.createTextNode(entity.label));
item.appendChild(href);
item.appendChild(document.createTextNode(' from '));
if (entity.srcHref !== undefined) {
href = document.createElement('a');
href.href = '../' + entity.srcHref;
} else {
href = document.createElement('span');
}
var text = document.createTextNode(entity.declared);
if (entity.declared_qualifier != '') {
text.appendData(' ');
text.appendData(entity.declared_qualifier);
}
href.appendChild(text);
item.appendChild(href);
list.appendChild(item);
}
page.appendChild(list);
}
/**
* ???
* @param {Object} page ???.
*/
function buildInheritanceIndex(page) {
function build(list, entities) {
for (var index = 0; index < entities.length; index++) {
var item = document.createElement('li');
var href = document.createElement('a');
href.href = entities[index].docHref;
href.appendChild(document.createTextNode(entities[index].label));
item.appendChild(href);
if (entities[index].inherited !== undefined) {
var sublist = document.createElement('ul');
build(sublist, entities[index].inherited);
item.appendChild(sublist);
}
list.appendChild(item);
}
}
var list = document.createElement('ul');
build(list, GNATdoc.InheritanceIndex);
page.appendChild(list);
}
/**
* ???
*/
function displaySource() {
var pane = document.getElementById('body');
var header = document.createElement('h1');
header.appendChild(document.createTextNode(GNATdoc.SourceFile.label));
pane.appendChild(header);
buildText(pane, [GNATdoc.SourceFile]);
}
/**
* ???
*/
function onDocumentationLoad() {
buildDocumentationPage();
// Scroll view to requested element.
var url = document.URL;
var index = url.indexOf('#');
if (index >= 0) {
var id = url.slice(index + 1, url.length);
var element = document.getElementById(id);
if (element) {
element.scrollIntoView();
}
}
}
/**
* Hides TOC and deselect all items of its menu.
*/
function hideTOC() {
var items = document.getElementById('tocView').children;
for (var index = 0; index < items.length; index++)
{
items[index].style.display = 'none';
}
items = document.getElementById('tocMenu').children[0].children;
for (var index = 0; index < items.length; index++)
{
items[index].className = '';
}
}
/**
* ???
*/
function displayPackagesAndClasses() {
hideTOC();
document.getElementById('contentView').src = 'blank.html';
document.getElementById('packagesAndClasses').style.display = 'block';
document.getElementById('packagesAndClassesMenu').className = 'current';
}
/**
* Displays list of entities' categories
*/
function displayEntities() {
hideTOC();
document.getElementById('contentView').src = 'blank.html';
document.getElementById('entities').style.display = 'block';
document.getElementById('entitiesMenu').className = 'current';
}
/**
* Displays inheritance tree of tagged types and classes
*/
function displayInheritance() {
hideTOC();
document.getElementById('contentView').src = 'inheritance_index.html';
document.getElementById('inheritanceMenu').className = 'current';
}
/**
* Displays list of source files
*/
function displaySources() {
hideTOC();
document.getElementById('contentView').src = 'blank.html';
document.getElementById('sources').style.display = 'block';
document.getElementById('sourcesMenu').className = 'current';
}
/**
* ???
*/
function onLoad() {
var toc = document.getElementById('tocView');
var menu = document.getElementById('tocMenu');
/* Build generic project informtion pane */
document.getElementById('projectName').appendChild(
document.createTextNode(GNATdoc.Index.project));
document.getElementById('documentationTimestamp').appendChild(
document.createTextNode(GNATdoc.Index.timestamp));
/* Build main menu */
var ul = document.createElement('ul');
var li = document.createElement('li');
var a = document.createElement('a');
a.appendChild(document.createTextNode('Packages and Classes'));
a.href = 'javascript:displayPackagesAndClasses();';
li.appendChild(a);
li.id = 'packagesAndClassesMenu';
ul.appendChild(li);
li = document.createElement('li');
a = document.createElement('a');
a.appendChild(document.createTextNode('Entities Index'));
a.href = 'javascript:displayEntities();';
li.appendChild(a);
li.id = 'entitiesMenu';
ul.appendChild(li);
li = document.createElement('li');
a = document.createElement('a');
a.appendChild(document.createTextNode('Inheritance Tree'));
a.href = 'javascript:displayInheritance();';
li.appendChild(a);
li.id = 'inheritanceMenu';
ul.appendChild(li);
li = document.createElement('li');
a = document.createElement('a');
a.appendChild(document.createTextNode('Source Files'));
a.href = 'javascript:displaySources();';
li.appendChild(a);
li.id = 'sourcesMenu';
ul.appendChild(li);
menu.appendChild(ul);
/* Build page content */
buildPackagesIndex(toc);
buildEntitiesCategoriesIndex(toc);
var header = document.createElement('h1');
var href = document.createElement('a');
href.href = 'inheritance_index.html';
href.target = 'contentView';
href.appendChild(document.createTextNode('Inheritance Tree'));
header.appendChild(href);
toc.appendChild(header);
buildSourcesIndex(toc);
/* Display list of packages and classes */
displayPackagesAndClasses();
}
/**
* ???
*/
function onSourceFileLoad() {
displaySource();
/* Scroll view to requested element. */
var url = document.URL;
var index = url.indexOf('#');
if (index >= 0) {
var id = url.slice(index + 1, url.length);
var element = document.getElementById(id);
if (element) {
element.scrollIntoView();
element.classList.add('target');
}
}
}
/**
* ???
*/
function onInheritanceLoad() {
var page = document.getElementById('body');
buildInheritanceIndex(page);
}
/**
* ???
*/
function onEntitiesCategoryLoad() {
buildEntitiesCategoryPage();
}

33
doc/api/index.html Normal file
View File

@ -0,0 +1,33 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="gnatdoc.css"/>
<script src="gnatdoc.js" defer></script>
<script src="index.js" defer></script>
<script src="documentation_index.js" defer></script>
<script src="entities_categories_index.js" defer></script>
<script src="source_file_index.js" defer></script>
</head>
<body onload="onLoad()">
<table id="frameSet" cellpadding=0 cellspacing=0>
<tbody>
<tr>
<td id="toc">
<p class="projectName"><span id="projectName"></span></p>
<p class="documentationTimestamp">Date: <span id="documentationTimestamp"></span></p>
<div id="tocMenu"></div>
<div id="tocViewLayout">
<div id="tocViewArea">
<div id="tocView"></div>
</div>
</div>
</td>
<td id="content">
<iframe id="contentView" name="contentView" src="blank.html"></iframe>
</td>
</tr>
</tbody>
</table>
</body>
</html>

4
doc/api/index.js Normal file
View File

@ -0,0 +1,4 @@
GNATdoc.Index = {
"project": "JWX",
"timestamp": "2018-08-17 20:33:44"
};

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="gnatdoc.css"/>
<script src="gnatdoc.js" defer></script>
<script src="inheritance_index.js" defer></script>
</head>
<body id="body" onload="onInheritanceLoad()">
</body>
</html>

View File

@ -0,0 +1,2 @@
GNATdoc.InheritanceIndex = [
];

View File

@ -0,0 +1,50 @@
GNATdoc.SourceFileIndex = [
{
"label": "jwx-base64.ads",
"srcHref": "srcs/jwx-base64.ads.html"
},
{
"label": "jwx-crypto.ads",
"srcHref": "srcs/jwx-crypto.ads.html"
},
{
"label": "jwx-jose.ads",
"srcHref": "srcs/jwx-jose.ads.html"
},
{
"label": "jwx-json.ads",
"srcHref": "srcs/jwx-json.ads.html"
},
{
"label": "jwx-jwk.ads",
"srcHref": "srcs/jwx-jwk.ads.html"
},
{
"label": "jwx-jws.ads",
"srcHref": "srcs/jwx-jws.ads.html"
},
{
"label": "jwx-jwscs.ads",
"srcHref": "srcs/jwx-jwscs.ads.html"
},
{
"label": "jwx-jwt.ads",
"srcHref": "srcs/jwx-jwt.ads.html"
},
{
"label": "jwx-libsparkcrypto.ads",
"srcHref": "srcs/jwx-libsparkcrypto.ads.html"
},
{
"label": "jwx-stream_auth.ads",
"srcHref": "srcs/jwx-stream_auth.ads.html"
},
{
"label": "jwx-util.ads",
"srcHref": "srcs/jwx-util.ads.html"
},
{
"label": "jwx.ads",
"srcHref": "srcs/jwx.ads.html"
}
];

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-base64.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-crypto.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,579 @@
GNATdoc.SourceFile = {
"kind": "code",
"children": [
{
"kind": "line",
"number": 1,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 2,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @author Alexander Senier"
}
]
},
{
"kind": "line",
"number": 3,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @date 2018-06-06"
}
]
},
{
"kind": "line",
"number": 4,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 5,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- Copyright (C) 2018 Componolit GmbH"
}
]
},
{
"kind": "line",
"number": 6,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 7,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- This file is part of JWX, which is distributed under the terms of the"
}
]
},
{
"kind": "line",
"number": 8,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- GNU Affero General Public License version 3."
}
]
},
{
"kind": "line",
"number": 9,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 10,
"children": [
]
},
{
"kind": "line",
"number": 11,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @summary Cryptographic validation of JWT payload."
}
]
},
{
"kind": "line",
"number": 12,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "generic"
}
]
},
{
"kind": "line",
"number": 13,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Payload",
"href": "docs/jwx__crypto___spec.html#L13C4"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 14,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth",
"href": "docs/jwx__crypto___spec.html#L14C4"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 15,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Key",
"href": "docs/jwx__crypto___spec.html#L15C4"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 16,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "package"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Crypto",
"href": "docs/jwx__crypto___spec.html#L16C13"
}
]
},
{
"kind": "line",
"number": 17,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "is"
}
]
},
{
"kind": "line",
"number": 18,
"children": [
]
},
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Valid",
"href": "docs/jwx__crypto___spec.html#L19C14"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Alg",
"href": "docs/jwx__crypto___spec.html#L19C21"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Alg_Type",
"href": "docs/jwx___spec.html#L63C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 20,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Valid_Payload",
"href": "docs/jwx__crypto___spec.html#L20C21"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Boolean"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Key'First >= 0 "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Key'Last < Natural'Last "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Key'First <= Key'Last"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 25,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- Validate authenticator"
}
]
},
{
"kind": "line",
"number": 26,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 27,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Alg Algorithm to use"
}
]
},
{
"kind": "line",
"number": 28,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Valid_Payload Validation result"
}
]
},
{
"kind": "line",
"number": 29,
"children": [
]
},
{
"kind": "line",
"number": 30,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "end"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Crypto"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
],
"label": "jwx-crypto.ads"
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-jose.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,442 @@
GNATdoc.SourceFile = {
"kind": "code",
"children": [
{
"kind": "line",
"number": 1,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 2,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @author Alexander Senier"
}
]
},
{
"kind": "line",
"number": 3,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @date 2018-06-06"
}
]
},
{
"kind": "line",
"number": 4,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 5,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- Copyright (C) 2018 Componolit GmbH"
}
]
},
{
"kind": "line",
"number": 6,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 7,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- This file is part of JWX, which is distributed under the terms of the"
}
]
},
{
"kind": "line",
"number": 8,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- GNU Affero General Public License version 3."
}
]
},
{
"kind": "line",
"number": 9,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 10,
"children": [
]
},
{
"kind": "line",
"number": 11,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 12,
"children": [
]
},
{
"kind": "line",
"number": 13,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @summary JOSE header decoding (RFC 7515, section 4)"
}
]
},
{
"kind": "line",
"number": 14,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "generic"
}
]
},
{
"kind": "line",
"number": 15,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Data",
"href": "docs/jwx__jose___spec.html#L15C4"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 16,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "package"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.JOSE",
"href": "docs/jwx__jose___spec.html#L16C13"
}
]
},
{
"kind": "line",
"number": 17,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "is"
}
]
},
{
"kind": "line",
"number": 18,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- Valid JOSE header"
}
]
},
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "function"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Valid",
"href": "docs/jwx__jose___spec.html#L19C13"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "return"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Boolean"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 20,
"children": [
]
},
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- Algorithm defined in JOSE header"
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "function"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Algorithm",
"href": "docs/jwx__jose___spec.html#L22C13"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "return"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Alg_Type",
"href": "docs/jwx___spec.html#L63C9"
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Valid"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 25,
"children": [
]
},
{
"kind": "line",
"number": 26,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "end"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.JOSE"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
],
"label": "jwx-jose.ads"
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-json.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

4304
doc/api/srcs/jwx-json.ads.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-jwk.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

5592
doc/api/srcs/jwx-jwk.ads.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-jws.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

1832
doc/api/srcs/jwx-jws.ads.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-jwscs.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-jwt.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

1075
doc/api/srcs/jwx-jwt.ads.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-libsparkcrypto.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,902 @@
GNATdoc.SourceFile = {
"kind": "code",
"children": [
{
"kind": "line",
"number": 1,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 2,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @author Alexander Senier"
}
]
},
{
"kind": "line",
"number": 3,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @date 2018-06-06"
}
]
},
{
"kind": "line",
"number": 4,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 5,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- Copyright (C) 2018 Componolit GmbH"
}
]
},
{
"kind": "line",
"number": 6,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 7,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- This file is part of JWX, which is distributed under the terms of the"
}
]
},
{
"kind": "line",
"number": 8,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- GNU Affero General Public License version 3."
}
]
},
{
"kind": "line",
"number": 9,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 10,
"children": [
]
},
{
"kind": "line",
"number": 11,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @summary JWX binding to libsparkcrypto"
}
]
},
{
"kind": "line",
"number": 12,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "LSC.Types"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 13,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "LSC.SHA256"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 14,
"children": [
]
},
{
"kind": "line",
"number": 15,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "use"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "type"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "LSC.SHA256.Message_Index"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 16,
"children": [
]
},
{
"kind": "line",
"number": 17,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "package"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Libsparkcrypto",
"href": "docs/jwx__libsparkcrypto___spec.html#L17C13"
}
]
},
{
"kind": "line",
"number": 18,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "SPARK_Mode"
}
]
},
{
"kind": "line",
"number": 20,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "is"
}
]
},
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX_Byte_Array_To_LSC_Word32_Array",
"href": "docs/jwx__libsparkcrypto___spec.html#L21C14"
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Input",
"href": "docs/jwx__libsparkcrypto___spec.html#L22C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Output",
"href": "docs/jwx__libsparkcrypto___spec.html#L23C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "LSC.Types.Word32_Array_Type"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Offset",
"href": "docs/jwx__libsparkcrypto___spec.html#L24C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Natural"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":="
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "number",
"text": "0"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 25,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 26,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Input'First < Integer'Last - Offset - 4 * Output'Length"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 27,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- Convert JWX byte array to LSC word32 array"
}
]
},
{
"kind": "line",
"number": 28,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 29,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Input JWX Input array"
}
]
},
{
"kind": "line",
"number": 30,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Output LSC output array"
}
]
},
{
"kind": "line",
"number": 31,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Offset Start converting Input at Offset"
}
]
},
{
"kind": "line",
"number": 32,
"children": [
]
},
{
"kind": "line",
"number": 33,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX_Byte_Array_To_LSC_SHA256_Message",
"href": "docs/jwx__libsparkcrypto___spec.html#L33C14"
}
]
},
{
"kind": "line",
"number": 34,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Input",
"href": "docs/jwx__libsparkcrypto___spec.html#L34C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 35,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Output",
"href": "docs/jwx__libsparkcrypto___spec.html#L35C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "LSC.SHA256.Message_Type"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 36,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 37,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => ((Input'Length > 0 "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 38,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Output'Last > Output'First "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 39,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Output'Length <= LSC.SHA256.Message_Index (Integer'Last) / 64) "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "then"
}
]
},
{
"kind": "line",
"number": 40,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Input'First < Integer'Last - 64 * Output'Length - 64)"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 41,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- Convert JWX byte array to LSC SHA256 message"
}
]
},
{
"kind": "line",
"number": 42,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 43,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Input JWX Input array"
}
]
},
{
"kind": "line",
"number": 44,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Output LSC SHA-256 message"
}
]
},
{
"kind": "line",
"number": 45,
"children": [
]
},
{
"kind": "line",
"number": 46,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "end"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Libsparkcrypto"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
],
"label": "jwx-libsparkcrypto.ads"
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-stream_auth.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,879 @@
GNATdoc.SourceFile = {
"kind": "code",
"children": [
{
"kind": "line",
"number": 1,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 2,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @author Alexander Senier"
}
]
},
{
"kind": "line",
"number": 3,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @date 2018-06-06"
}
]
},
{
"kind": "line",
"number": 4,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 5,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- Copyright (C) 2018 Componolit GmbH"
}
]
},
{
"kind": "line",
"number": 6,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 7,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- This file is part of JWX, which is distributed under the terms of the"
}
]
},
{
"kind": "line",
"number": 8,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- GNU Affero General Public License version 3."
}
]
},
{
"kind": "line",
"number": 9,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 10,
"children": [
]
},
{
"kind": "line",
"number": 11,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @summary Stream authentication checking"
}
]
},
{
"kind": "line",
"number": 12,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 13,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @description"
}
]
},
{
"kind": "line",
"number": 14,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- Given a key in the form of a JSON web key (JWK), an audience string and an"
}
]
},
{
"kind": "line",
"number": 15,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- issuer string, the Authenticated procedure in this package searches an input"
}
]
},
{
"kind": "line",
"number": 16,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- string for a JSON web token (JWT), decodes it and tries to validate it. The"
}
]
},
{
"kind": "line",
"number": 17,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- JWT must be present as the URL parameter \"id_token=\"."
}
]
},
{
"kind": "line",
"number": 18,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "generic"
}
]
},
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Key_Data",
"href": "docs/jwx__stream_auth___spec.html#L19C4"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 20,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Audience",
"href": "docs/jwx__stream_auth___spec.html#L20C4"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Issuer",
"href": "docs/jwx__stream_auth___spec.html#L21C4"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "package"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Stream_Auth",
"href": "docs/jwx__stream_auth___spec.html#L22C13"
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "is"
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "type"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Result_Type",
"href": "docs/jwx__stream_auth___spec.html#L24C9"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "is"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_OK",
"href": "docs/jwx__stream_auth___spec.html#L24C30"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Noent",
"href": "docs/jwx__stream_auth___spec.html#L24C39"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Fail",
"href": "docs/jwx__stream_auth___spec.html#L24C51"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ","
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Invalid",
"href": "docs/jwx__stream_auth___spec.html#L24C62"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";",
"href": "docs/jwx__stream_auth___spec.html#L24C9"
}
]
},
{
"kind": "line",
"number": 25,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- Authentication result"
}
]
},
{
"kind": "line",
"number": 26,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 27,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @value Auth_OK Authentication succeeded"
}
]
},
{
"kind": "line",
"number": 28,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @value Auth_Noent No JSON web token found in input data"
}
]
},
{
"kind": "line",
"number": 29,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @value Auth_Fail JSON web token found, but authentication failed"
}
]
},
{
"kind": "line",
"number": 30,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @value Auth_Invalid Unspecified error during authentication"
}
]
},
{
"kind": "line",
"number": 31,
"children": [
]
},
{
"kind": "line",
"number": 32,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "function"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Authenticated",
"href": "docs/jwx__stream_auth___spec.html#L32C13"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Buf",
"href": "docs/jwx__stream_auth___spec.html#L32C28"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 33,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Now",
"href": "docs/jwx__stream_auth___spec.html#L33C28"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Long_Integer"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "return"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Auth_Result_Type",
"href": "docs/jwx__stream_auth___spec.html#L24C9"
}
]
},
{
"kind": "line",
"number": 34,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 35,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Buf'First >= JWX.Data_Index'First "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 36,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Buf'Last <= JWX.Data_Index'Last "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 37,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Buf'Last < Natural'Last - 9 "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "and"
}
]
},
{
"kind": "line",
"number": 38,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Buf'Length > 9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 39,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- Check whether string contains valid authentication token"
}
]
},
{
"kind": "line",
"number": 40,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 41,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Buf String buffer to validate"
}
]
},
{
"kind": "line",
"number": 42,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Now Current time as a UNIX Epoch (seconds since 1.1.1970)"
}
]
},
{
"kind": "line",
"number": 43,
"children": [
]
},
{
"kind": "line",
"number": 44,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "end"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Stream_Auth"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
],
"label": "jwx-stream_auth.ads"
};

View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx-util.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

View File

@ -0,0 +1,666 @@
GNATdoc.SourceFile = {
"kind": "code",
"children": [
{
"kind": "line",
"number": 1,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 2,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @author Alexander Senier"
}
]
},
{
"kind": "line",
"number": 3,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @date 2018-05-16"
}
]
},
{
"kind": "line",
"number": 4,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 5,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- Copyright (C) 2018 Componolit GmbH"
}
]
},
{
"kind": "line",
"number": 6,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 7,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- This file is part of JWX, which is distributed under the terms of the"
}
]
},
{
"kind": "line",
"number": 8,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- GNU Affero General Public License version 3."
}
]
},
{
"kind": "line",
"number": 9,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "--"
}
]
},
{
"kind": "line",
"number": 10,
"children": [
]
},
{
"kind": "line",
"number": 11,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 12,
"children": [
]
},
{
"kind": "line",
"number": 13,
"children": [
{
"kind": "span",
"cssClass": "comment",
"text": "-- @summary JWX utility functions"
}
]
},
{
"kind": "line",
"number": 14,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "package"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Util",
"href": "docs/jwx__util___spec.html#L14C13"
}
]
},
{
"kind": "line",
"number": 15,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 16,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "SPARK_Mode"
}
]
},
{
"kind": "line",
"number": 17,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "is"
}
]
},
{
"kind": "line",
"number": 18,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "To_Byte_Array",
"href": "docs/jwx__util___spec.html#L18C14"
}
]
},
{
"kind": "line",
"number": 19,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Data",
"href": "docs/jwx__util___spec.html#L19C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 20,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result",
"href": "docs/jwx__util___spec.html#L20C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 21,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 22,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Result'Length >= Data'Length"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 23,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- Convert a string into an equivalent byte array"
}
]
},
{
"kind": "line",
"number": 24,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Data Input string"
}
]
},
{
"kind": "line",
"number": 25,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Result Converted byte array"
}
]
},
{
"kind": "line",
"number": 26,
"children": [
]
},
{
"kind": "line",
"number": 27,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "procedure"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "To_String",
"href": "docs/jwx__util___spec.html#L27C14"
}
]
},
{
"kind": "line",
"number": 28,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "("
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Data",
"href": "docs/jwx__util___spec.html#L28C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Byte_Array",
"href": "docs/jwx___spec.html#L30C9"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 29,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "Result",
"href": "docs/jwx__util___spec.html#L29C8"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": ":"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "out"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "String"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ")"
}
]
},
{
"kind": "line",
"number": 30,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "keyword",
"text": "with"
}
]
},
{
"kind": "line",
"number": 31,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " Pre => Result'Length >= Data'Length"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
},
{
"kind": "line",
"number": 32,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- Convert a byte array into an equivalent string"
}
]
},
{
"kind": "line",
"number": 33,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Data Input byte array"
}
]
},
{
"kind": "line",
"number": 34,
"children": [
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "comment",
"text": "-- @param Result Converted string"
}
]
},
{
"kind": "line",
"number": 35,
"children": [
]
},
{
"kind": "line",
"number": 36,
"children": [
{
"kind": "span",
"cssClass": "keyword",
"text": "end"
},
{
"kind": "span",
"cssClass": "text",
"text": " "
},
{
"kind": "span",
"cssClass": "identifier",
"text": "JWX.Util"
},
{
"kind": "span",
"cssClass": "identifier",
"text": ";"
}
]
}
],
"label": "jwx-util.ads"
};

13
doc/api/srcs/jwx.ads.html Normal file
View File

@ -0,0 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf8"/>
<link rel="stylesheet" type="text/css" href="../gnatdoc.css"/>
<script src="../gnatdoc.js" defer></script>
<script src="jwx.ads.js" defer></script>
</head>
<body onload="onSourceFileLoad()">
<div id="body">
</div>
</body>
</html>

2955
doc/api/srcs/jwx.ads.js Normal file

File diff suppressed because it is too large Load Diff