Rev 5 | Rev 11 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5 | Rev 10 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | <?php |
1 | <?php |
2 | 2 | ||
3 | /* |
3 | /* |
4 | * OidDerConverter.class.php, Version 1.1; Based on version 1.11 of oid.c |
4 | * OidDerConverter.class.php, Version 1.1; Based on version 1.11 of oid.c |
5 | * Copyright 2014-2015 Daniel Marschall, ViaThinkSoft |
5 | * Copyright 2014-2022 Daniel Marschall, ViaThinkSoft |
6 | * |
6 | * |
7 | * Licensed under the Apache License, Version 2.0 (the "License"); |
7 | * Licensed under the Apache License, Version 2.0 (the "License"); |
8 | * you may not use this file except in compliance with the License. |
8 | * you may not use this file except in compliance with the License. |
9 | * You may obtain a copy of the License at |
9 | * You may obtain a copy of the License at |
10 | * |
10 | * |
Line 42... | Line 42... | ||
42 | 42 | ||
43 | return $out; |
43 | return $out; |
44 | } |
44 | } |
45 | 45 | ||
46 | /** |
46 | /** |
47 | * @return string Outputs .<oid> for an absolute OID and <oid> for a relative OID. |
47 | * @return string|false Outputs .<oid> for an absolute OID and <oid> for a relative OID. |
48 | */ |
48 | */ |
49 | public static function derToOID($abBinary, $verbose=false) { |
49 | public static function derToOID($abBinary, $verbose=false) { |
50 | $output_oid = array(); |
50 | $output_oid = array(); |
51 | $output_absolute = true; |
51 | $output_absolute = true; |
52 | 52 | ||
Line 70... | Line 70... | ||
70 | $lengthbyte_pos = 0; |
70 | $lengthbyte_pos = 0; |
71 | $lengthfinished = false; |
71 | $lengthfinished = false; |
72 | 72 | ||
73 | $arcBeginning = true; |
73 | $arcBeginning = true; |
74 | 74 | ||
- | 75 | $isRelative = null; // to avoid that phpstan complains |
|
- | 76 | ||
75 | foreach ($abBinary as $nn => &$pb) { |
77 | foreach ($abBinary as $nn => &$pb) { |
76 | if ($part == 0) { // Class Tag |
78 | if ($part == 0) { // Class Tag |
77 | // Leading octet |
79 | // Leading octet |
78 | // Bit 7 / Bit 6 = Universal (00), Application (01), Context (10), Private(11) |
80 | // Bit 7 / Bit 6 = Universal (00), Application (01), Context (10), Private(11) |
79 | // Bit 5 = Primitive (0), Constructed (1) |
81 | // Bit 5 = Primitive (0), Constructed (1) |
Line 350... | Line 352... | ||
350 | 352 | ||
351 | $output[] = 0x80 + $lengthCount; |
353 | $output[] = 0x80 + $lengthCount; |
352 | 354 | ||
353 | $nBinaryWork = $nBinary; |
355 | $nBinaryWork = $nBinary; |
354 | do { |
356 | do { |
355 | $output[] = nBinaryWork & 0xFF; |
357 | $output[] = $nBinaryWork & 0xFF; |
356 | $nBinaryWork /= 0x100; |
358 | $nBinaryWork /= 0x100; |
357 | } while ($nBinaryWork > 0); |
359 | } while ($nBinaryWork > 0); |
358 | } |
360 | } |
359 | 361 | ||
360 | foreach ($abBinary as $b) { |
362 | foreach ($abBinary as $b) { |