mirror of
https://github.com/phpseclib/phpseclib.git
synced 2024-11-17 02:35:10 +00:00
ASN.1: Add headerlength and fix start
This commit is contained in:
parent
9bf633d689
commit
a3e3682feb
@ -319,8 +319,12 @@ class File_ASN1 {
|
|||||||
// support it up to four.
|
// support it up to four.
|
||||||
$length&= 0x7F;
|
$length&= 0x7F;
|
||||||
$temp = $this->_string_shift($encoded, $length);
|
$temp = $this->_string_shift($encoded, $length);
|
||||||
|
// tags of indefinte length don't really have a header length; this length includes the tag
|
||||||
|
$current+= array('headerlength' => $length + 2);
|
||||||
$start+= $length;
|
$start+= $length;
|
||||||
extract(unpack('Nlength', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4)));
|
extract(unpack('Nlength', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4)));
|
||||||
|
} else {
|
||||||
|
$current+= array('headerlength' => 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// End-of-content, see paragraphs 8.1.1.3, 8.1.3.2, 8.1.3.6, 8.1.5, and (for an example) 8.6.4.2
|
// End-of-content, see paragraphs 8.1.1.3, 8.1.3.2, 8.1.3.6, 8.1.5, and (for an example) 8.6.4.2
|
||||||
@ -349,6 +353,7 @@ class File_ASN1 {
|
|||||||
'content' => $constructed ? $this->_decode_ber($content, $start) : $content,
|
'content' => $constructed ? $this->_decode_ber($content, $start) : $content,
|
||||||
'length' => $length + $start - $current['start']
|
'length' => $length + $start - $current['start']
|
||||||
) + $current;
|
) + $current;
|
||||||
|
$start+= $length;
|
||||||
continue 2;
|
continue 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user