mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
performance improvements for the LDAP ASN.1 analyzer
This commit is contained in:
parent
738c39379f
commit
07a010a643
1 changed files with 8 additions and 7 deletions
|
@ -167,28 +167,29 @@ type ASN1ObjectIdentifierNibble = unit {
|
||||||
} &convert=self.data;
|
} &convert=self.data;
|
||||||
|
|
||||||
type ASN1ObjectIdentifier = unit(len: uint64) {
|
type ASN1ObjectIdentifier = unit(len: uint64) {
|
||||||
var oid: vector<uint64>;
|
var oidbytes: bytes;
|
||||||
var temp: uint64;
|
var temp: uint64;
|
||||||
var oidstring: string;
|
var oidstring: string;
|
||||||
|
|
||||||
: uint8 if ( len >= 1 ) {
|
: uint8 if ( len >= 1 ) {
|
||||||
self.temp = $$ / 40;
|
self.temp = $$ / 40;
|
||||||
self.oid.push_back( self.temp );
|
self.oidbytes += ("%d" % (self.temp)).encode();
|
||||||
self.oidstring = "%d" % (self.temp);
|
|
||||||
self.temp = $$ % 40;
|
self.temp = $$ % 40;
|
||||||
self.oid.push_back( self.temp );
|
self.oidbytes += (".%d" % (self.temp)).encode();
|
||||||
self.oidstring = self.oidstring + ".%d" % (self.temp);
|
|
||||||
self.temp = 0;
|
self.temp = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
sublist: ASN1ObjectIdentifierNibble[len - 1] foreach {
|
sublist: ASN1ObjectIdentifierNibble[len - 1] foreach {
|
||||||
self.temp = ( self.temp<<7 ) | $$.num;
|
self.temp = ( self.temp<<7 ) | $$.num;
|
||||||
if ( $$.more != 1 ) {
|
if ( $$.more != 1 ) {
|
||||||
self.oid.push_back(self.temp);
|
self.oidbytes += (".%d" % (self.temp)).encode();
|
||||||
self.oidstring = self.oidstring + ".%d" % (self.temp);
|
|
||||||
self.temp = 0;
|
self.temp = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
on %done {
|
||||||
|
self.oidstring = self.oidbytes.decode();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue