summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* sid.ml: give hex ia reader enough leeway for sloppy parsingPhilipp Gesang2018-12-091-2/+12
| | | | | In MS mode we need for much shorter strings to pass through to the hex parser.
* doc: outline usagePhilipp Gesang2018-12-092-1/+13
|
* sidparse: flush linewise when run interactivelyPhilipp Gesang2018-12-091-1/+4
| | | | | Provide immediate feedback on stdout when running in an interactive terminal the assumption being we’re dealing with a human.
* sid: sid_test: add conformance mode imitating MS APIPhilipp Gesang2018-11-293-67/+257
| | | | | | | | | | | | Add a conformance handler “Con_MS” to achieve a behavior that mimicks that of MS’s implementation bug-for-bug. Aspects of reading and formatting governd by the conformance: - Validation of ident auths, - validation of subauths, - validation of leading zeros in decimal numbers, - zero-padding of hex numbers.
* sid: functorize well-formedness checksPhilipp Gesang2018-11-082-33/+59
| | | | | | Offload the test for member count and size constraints of sas and ia, respectively, into a separate validation module. This is a preparatory step toward adding less rigid parsing modes.
* sid.mli: add short module blurbPhilipp Gesang2018-11-071-0/+9
|
* sid: sid_test: make subauthorities mandatoryPhilipp Gesang2018-11-075-174/+207
| | | | | | | | | | | | | | | | | Both the constructor “Sid.create” and the string format parser must reject inputs lacking a subauthorities array of at least size one. Since the array is no longer optional, reorder the the constructor arguments to match the data representation. It is still possible to create SIDs without subauthorities via the “Sid.create_unsafe” constructor. Also, the packet representation will happily accept them because their definition (as well as that that of the identical RPC version) does not specify a minimum count. This is all rather ambiguous and exacerbated by the fact that [MS-DTYP] happily specifies an invalid SID “S-1-5” as the “NT_AUTHORITY”. However, both the grammar and the Win API “ConvertStringSidToSidA()” function reject SA-less inputs as invalid, so we should too.
* sid: sid_test: handle large ias correctlyPhilipp Gesang2018-11-073-39/+197
| | | | | In string format, the “identifier authority” is quirky: from 1 << 32 on the spec requires that exactly 12 hex digits be printed.
* sid: add Sid.{of,to}_bytes aliasesPhilipp Gesang2018-11-062-0/+9
| | | | Establish symmetry with of_string / to_string and the StringFmt module.
* opam: raise minimum compiler version to 4.03Philipp Gesang2018-11-061-1/+1
| | | | | | | Apparently, the “result” type was not introduced until after the 4.02 series. Suggested-By: @kit-ty-kate on github
* sid: sid_test: validate identifier authority on create()Philipp Gesang2018-11-063-4/+22
| | | | Reject ia’s greater than six bytes can encompass.
* sid.opam: add ocamlfind to opam depsPhilipp Gesang2018-11-061-0/+1
| | | | | | | | This change reflects: https://github.com/ocaml/opam-repository/pull/12935/commits/5d761aa7bc982d40514787c8340b00374dbf1f0b Suggested-By: @kit-ty-kate on github
* readme: add sections describing build and dev repoPhilipp Gesang2018-11-061-0/+33
|
* fix opam build, bump versionv1.1Philipp Gesang2018-11-062-3/+4
| | | | | | - Add cmdliner to deps, - set {with-test} filter on unit tests, - version 1 → 1.1.
* fix tests and bump versionv1Philipp Gesang2018-11-052-5/+8
| | | | | Also set minimum compiler version to 4.02 for package since that’s when the bytes type was introduced.
* sid: add channel handlers for binary representationPhilipp Gesang2018-11-032-0/+38
|
* add linking exception to licensePhilipp Gesang2018-11-039-7/+25
|
* sid: predefine more well known constantsPhilipp Gesang2018-11-032-17/+471
| | | | Add the constants from MS-DTYP 2.4.2.4 to Sid.WellKnown.
* oasis: add documentation targetPhilipp Gesang2018-11-032-9/+19
|
* gitignore: mask more side-effectsPhilipp Gesang2018-11-031-0/+13
|
* sid_test: unit test string format version numbers some morePhilipp Gesang2018-10-301-2/+18
|
* sid_test: prefer Stdint module shorthandsPhilipp Gesang2018-10-301-12/+11
|
* sid: catch more boundary violationsPhilipp Gesang2018-10-302-1/+48
|
* sid: fix off by one parsing bugPhilipp Gesang2018-10-302-1/+6
| | | | | In the string representation, hyphen is always succeeded by a number so we need to terminate at input length minus one.
* sid.mli: document modulePhilipp Gesang2018-10-301-3/+34
|
* sid: sid_test: move conversion functions to resultPhilipp Gesang2018-10-304-68/+59
| | | | | | Get rid of all “StringFmt” APIs involving exceptions. There is now only the “decode” function which returns a result type.
* sid_test: add unit tests for Sid.createPhilipp Gesang2018-10-301-0/+17
|
* add readme and license textPhilipp Gesang2018-10-307-2/+196
|
* sid: define more constant authorities from MS-DTYPPhilipp Gesang2018-10-302-6/+18
|
* sid: optionally handle big endian in packet format codecPhilipp Gesang2018-10-303-37/+97
| | | | | Oddly enough this only has an effect on the sub_auths since the 48 bits of “identifier authority” are always handled in big endian.
* util: sidparse_test. add trivial test wrapperPhilipp Gesang2018-10-282-0/+350
|
* util/sidparse: add cli SID utilityPhilipp Gesang2018-10-282-0/+140
|
* sid: implement decoder for “packet representation”Philipp Gesang2018-10-283-10/+164
|
* sid_test: unit test packed representationPhilipp Gesang2018-10-281-2/+34
|
* xxd: add binary-text conversion helperPhilipp Gesang2018-10-283-19/+112
|
* sid: add interface definitionPhilipp Gesang2018-10-281-0/+44
|
* _oasis: opam: nix: add build and env setupPhilipp Gesang2018-10-283-0/+72
|
* sid: sid_test: add current state to repoPhilipp Gesang2018-10-282-0/+294
|
* initial: gitignorePhilipp Gesang2018-10-191-0/+13