Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
openldap
OpenLDAP
Commits
5314ac01
Commit
5314ac01
authored
Nov 29, 2004
by
Sang Seok Lim
Browse files
Component library for GSER encoders of primitive types
parent
e7757079
Changes
2
Hide whitespace changes
Inline
Side-by-side
contrib/slapd-modules/comp_match/component.h
View file @
5314ac01
...
...
@@ -41,6 +41,7 @@ typedef struct ComponentBits {
#define GASNBITS_PRESENT(abits) ((abits)->value.bits != NULL)
#define COMPONENTBITS_PRESENT(abits) ((abits)->value.bits != NULL)
int
GEncComponentBits
(
GenBuf
*
b
,
ComponentBits
*
bits
);
int
GDecComponentBits
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentBits
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
MatchingComponentBits
(
char
*
oid
,
ComponentSyntaxInfo
*
bits1
,
ComponentSyntaxInfo
*
bits2
);
...
...
@@ -57,6 +58,7 @@ typedef struct ComponentBMPString {
BMPString
value
;
}
ComponentBMPString
;
int
GEncComponentBMPString
(
GenBuf
*
b
,
ComponentBMPString
*
bmp
);
int
GDecComponentBMPString
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentBMPString
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
#define MatchingComponentBMPString MatchingComponentOcts
...
...
@@ -74,6 +76,7 @@ typedef struct ComponentBool {
AsnBool
value
;
}
ComponentBool
;
int
GEncComponentBool
(
GenBuf
*
b
,
ComponentBool
*
bool
);
int
GDecComponentBool
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentBool
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
MatchingComponentBool
(
char
*
oid
,
ComponentSyntaxInfo
*
a
,
ComponentSyntaxInfo
*
b
);
...
...
@@ -92,6 +95,7 @@ typedef struct ComponentEnum {
struct
berval
value_identifier
;
/*Why this value is defined here?*/
}
ComponentEnum
;
int
GEncComponentEnum
(
GenBuf
*
b
,
ComponentEnum
*
comp_enum
);
int
GDecComponentEnum
(
void
*
mem_op
,
GenBuf
*
a
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentEnum
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
MatchingComponentEnum
(
char
*
oid
,
ComponentSyntaxInfo
*
a
,
ComponentSyntaxInfo
*
b
);
...
...
@@ -109,6 +113,7 @@ typedef struct ComponentIA5String {
IA5String
value
;
}
ComponentIA5String
;
#define GEncComponentIA5String GEncComponentUTF8String
#define GDecComponentIA5String GDecComponentUTF8String
int
BDecComponentIA5String
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
#define MatchingComponentIA5String MatchingComponentOcts
...
...
@@ -128,7 +133,7 @@ typedef struct ComponentInt {
}
ComponentInt
;
#define GNOT_NULL(ptr) ((ptr) != NULL)
int
GEncComponentInt
(
GenBuf
*
b
,
ComponentInt
*
comp_int
);
int
GDecComponentInt
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentInt
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
MatchingComponentInt
(
char
*
oid
,
ComponentSyntaxInfo
*
a
,
ComponentSyntaxInfo
*
b
);
...
...
@@ -157,6 +162,7 @@ typedef struct ComponentNull {
AsnNull
value
;
}
ComponentNull
;
int
GEncComponentNull
(
GenBuf
*
b
,
ComponentNull
*
comp_null
);
int
GDecComponentNull
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentNull
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentNullTag
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
v
,
AsnLen
*
bytesDecoded
,
int
mode
);
...
...
@@ -175,6 +181,7 @@ typedef struct ComponentNumericString {
NumericString
value
;
}
ComponentNumericString
;
#define GEncComponentNumericString GEncComponentUTF8String
#define GDecComponentNumericString GDecComponentUTF8String
int
BDecComponentNumericString
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
#define MatchingComponentNumericString MatchingComponentOcts
...
...
@@ -193,7 +200,7 @@ typedef struct ComponentOcts {
}
ComponentOcts
;
#define GASNOCTS_PRESENT(aocts) ((aocts)->value.octs != NULL)
int
GEncComponentOcts
(
GenBuf
*
b
,
ComponentOcts
*
octs
);
int
GDecComponentOcts
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentOcts
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
MatchingComponentOcts
(
char
*
oid
,
ComponentSyntaxInfo
*
a
,
ComponentSyntaxInfo
*
b
);
...
...
@@ -212,7 +219,7 @@ typedef struct ComponentOid {
}
ComponentOid
;
#define GASNOID_PRESENT(aoid) ASNOCTS_PRESENT(aoid)
int
GEncComponentOid
(
GenBuf
*
b
,
ComponentOid
*
oid
);
int
GDecComponentOid
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentOid
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
MatchingComponentOid
(
char
*
oid
,
ComponentSyntaxInfo
*
a
,
ComponentSyntaxInfo
*
b
);
...
...
@@ -229,7 +236,7 @@ typedef struct ComponentPrintableString{
char
id_buf
[
MAX_IDENTIFIER_LEN
];
PrintableString
value
;
}
ComponentPrintableString
;
#define GEncComponentPrintableString GEncComponentUTF8String
#define GDecComponentPrintableString GDecComponentUTF8String
int
BDecComponentPrintableString
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentPrintableStringTag
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
v
,
AsnLen
*
bytesDecoded
,
int
mode
);
...
...
@@ -248,6 +255,7 @@ typedef struct ComponentReal{
AsnReal
value
;
}
ComponentReal
;
int
GEncComponentReal
(
GenBuf
*
b
,
ComponentReal
*
comp_real
);
int
GDecComponentReal
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentReal
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
MatchingComponentReal
(
char
*
oid
,
ComponentSyntaxInfo
*
a
,
ComponentSyntaxInfo
*
b
);
...
...
@@ -266,6 +274,7 @@ typedef struct ComponentRelativeOid {
AsnRelativeOid
value
;
}
ComponentRelativeOid
;
int
GEncComponentRelativeOid
(
GenBuf
*
b
,
ComponentRelativeOid
*
r_oid
);
int
GDecComponentRelativeOid
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentRelativeOid
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
MatchingComponentRelativeOid
(
char
*
oid
,
ComponentSyntaxInfo
*
a
,
ComponentSyntaxInfo
*
b
);
...
...
@@ -283,6 +292,7 @@ typedef struct ComponentTeletexString {
TeletexString
value
;
}
ComponentTeletexString
;
int
GEncComponentTeletexString
(
GenBuf
*
b
,
ComponentTeletexString
*
tel_str
);
int
GDecComponentTeletexString
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
#define BDecComponentTeletexString BDecComponentOcts
#define MatchingComponentTeletexString MatchingComponentOcts
...
...
@@ -301,6 +311,7 @@ typedef struct ComponentUniversalString{
UniversalString
value
;
}
ComponentUniversalString
;
int
GEncComponentUniversalString
(
GenBuf
*
b
,
ComponentUniversalString
*
uni_str
);
int
GDecComponentUniversalString
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentUniversalString
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
#define MatchingComponentUniversalString MatchingComponentOcts
...
...
@@ -318,6 +329,7 @@ typedef struct ComponentUTF8String{
UTF8String
value
;
}
ComponentUTF8String
;
int
GEncComponentUTF8String
(
GenBuf
*
b
,
ComponentUTF8String
*
utf_str
);
int
GDecComponentUTF8String
(
void
*
mem_op
,
GenBuf
*
b
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
BDecComponentUTF8String
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
#define MatchingComponentUTF8String MatchingComponentOcts
...
...
@@ -335,6 +347,7 @@ typedef struct ComponentVisibleString{
VisibleString
value
;
}
ComponentVisibleString
;
#define GEncComponentVisibleString GEncComponentUTF8String
#define GDecComponentVisibleString GDecComponentUTF8String
int
BDecComponentVisibleString
(
void
*
mem_op
,
GenBuf
*
b
,
AsnTag
tagId
,
AsnLen
len
,
void
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
#define MatchingComponentVisibleString MatchingComponentOcts
...
...
@@ -379,6 +392,7 @@ typedef ComponentAny ComponentAnyDefinedBy;
#define MatchingComponentAnyDefinedBy MatchingComponentAny
#define FreeComponentAnyDefinedBy FreeComponentAny
int
GEncComponentAny
(
GenBuf
*
b
,
ComponentAny
*
comp_any
);
int
BDecComponentAny
(
void
*
mem_op
,
GenBuf
*
b
,
ComponentAny
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
GDecComponentAny
(
void
*
mem_op
,
GenBuf
*
b
,
ComponentAny
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
);
int
MatchingComponentAny
(
char
*
oid
,
ComponentAny
*
a
,
ComponentAny
*
b
);
...
...
@@ -393,6 +407,7 @@ void InstallAnyByComponentOid (int anyId, AsnOid *oid, unsigned int size, Encode
* UTCTime
*/
typedef
ComponentVisibleString
ComponentUTCTime
;
int
GEncComponentUTCTime
(
GenBuf
*
b
,
ComponentUTCTime
*
utc_time
);
#define GDecComponentUTCTime GDecComponentVisibleString
#define BDecComponentUTCTime BDecComponentOcts
#define MatchingComponentUTCTime MatchingComponentOcts
...
...
@@ -403,6 +418,7 @@ typedef ComponentVisibleString ComponentUTCTime;
* GeneralizedTime
*/
typedef
ComponentVisibleString
ComponentGeneralizedTime
;
int
GEncComponentGeneralizedTime
(
GenBuf
*
b
,
ComponentGeneralizedTime
*
gen_time
);
#define GDecComponentGeneralizedTime GDecComponentVisibleString
#define BDecComponentGeneralizedTime BDecComponentOcts
#define MatchingComponentGeneralizedTime MatchingComponentOcts
...
...
contrib/slapd-modules/comp_match/componentlib.c
View file @
5314ac01
...
...
@@ -60,6 +60,18 @@ FreeComponentBits ( ComponentBits* v ) {
FreeAsnBits
(
&
v
->
value
);
}
/*
* GSER Encoder : BIT STRING
*/
int
GEncComponentBits
(
GenBuf
*
b
,
ComponentBits
*
in
)
{
if
(
!
in
)
return
(
-
1
);
return
GEncAsnBitsContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : BIT STRING
*/
...
...
@@ -165,6 +177,16 @@ BDecComponentBits ( void* mem_op, GenBuf *b, AsnTag tagId, AsnLen len, void *v,
return
LDAP_SUCCESS
;
}
/*
* Component GSER BMPString Encoder
*/
int
GEncComponentBMPString
(
GenBuf
*
b
,
ComponentBMPString
*
in
)
{
if
(
!
in
||
in
->
value
.
octetLen
<=
0
)
return
(
-
1
);
return
GEncBMPStringContent
(
b
,
&
in
->
value
);
}
/*
* Component GSER BMPString Decoder
*/
...
...
@@ -274,6 +296,17 @@ BDecComponentBMPString ( void* mem_op, GenBuf *b, AsnTag tagId, AsnLen len, void
}
/*
* Component GSER Encoder : UTF8 String
*/
int
GEncComponentUTF8String
(
GenBuf
*
b
,
ComponentUTF8String
*
in
)
{
if
(
!
in
||
in
->
value
.
octetLen
<=
0
)
return
(
-
1
);
return
GEncUTF8StringContent
(
b
,
&
in
->
value
);
}
/*
* Component GSER Decoder : UTF8 String
*/
...
...
@@ -378,6 +411,17 @@ BDecComponentUTF8String ( void* mem_op, GenBuf *b, AsnTag tagId, AsnLen len,
k
->
comp_desc
->
cd_all_match
=
(
allcomponent_matching_func
*
)
MatchingComponentUTF8String
;
}
/*
* Component GSER Encoder : Teletex String
*/
int
GEncComponentTeletexString
(
GenBuf
*
b
,
ComponentTeletexString
*
in
)
{
if
(
!
in
||
in
->
value
.
octetLen
<=
0
)
return
(
-
1
);
return
GEncTeletexStringContent
(
b
,
&
in
->
value
);
}
/*
* Component GSER Decoder : Teletex String
*/
...
...
@@ -449,6 +493,17 @@ MatchingComponentBool(char* oid, ComponentSyntaxInfo* csi_attr,
return
(
a
->
value
==
b
->
value
)
?
LDAP_COMPARE_TRUE
:
LDAP_COMPARE_FALSE
;
}
/*
* GSER Encoder : BOOLEAN
*/
int
GEncComponentBool
(
GenBuf
*
b
,
ComponentBool
*
in
)
{
if
(
!
in
)
return
(
-
1
);
return
GEncAsnBoolContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : BOOLEAN
*/
...
...
@@ -574,6 +629,17 @@ MatchingComponentEnum ( char* oid, ComponentSyntaxInfo *csi_attr,
return
rc
?
LDAP_COMPARE_TRUE
:
LDAP_COMPARE_FALSE
;
}
/*
* GSER Encoder : ENUMERATE
*/
int
GEncComponentEnum
(
GenBuf
*
b
,
ComponentEnum
*
in
)
{
if
(
!
in
)
return
(
-
1
);
return
GEncAsnEnumContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : ENUMERATE
*/
...
...
@@ -680,8 +746,15 @@ BDecComponentEnum ( void* mem_op, GenBuf *b, AsnTag tagId, AsnLen len, void *v,
}
/*
* IA5String
*
Component GSER Encoder :
IA5String
*/
int
GEncComponentIA5Stirng
(
GenBuf
*
b
,
ComponentIA5String
*
in
)
{
if
(
!
in
||
in
->
value
.
octetLen
<=
0
)
return
(
-
1
);
return
GEncIA5StringContent
(
b
,
&
in
->
value
);
}
/*
* Component BER Decoder : IA5String
*/
...
...
@@ -764,6 +837,16 @@ function*/
return
(
a
->
value
==
b
->
value
)
?
LDAP_COMPARE_TRUE
:
LDAP_COMPARE_FALSE
;
}
/*
* GSER Encoder : INTEGER
*/
int
GEncComponentInt
(
GenBuf
*
b
,
ComponentInt
*
in
)
{
if
(
!
in
)
return
(
-
1
);
return
GEncAsnIntContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : INTEGER
*/
...
...
@@ -883,6 +966,16 @@ MatchingComponentNull ( char *oid, ComponentSyntaxInfo *csi_attr,
return
(
a
->
value
==
b
->
value
)
?
LDAP_COMPARE_TRUE
:
LDAP_COMPARE_FALSE
;
}
/*
* GSER Encoder : NULL
*/
int
GEncComponentNull
(
GenBuf
*
b
,
ComponentNull
*
in
)
{
if
(
!
in
)
return
(
-
1
);
return
GEncAsnNullContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : NULL
*/
...
...
@@ -1077,6 +1170,17 @@ MatchingComponentOcts ( char* oid, ComponentSyntaxInfo* csi_attr,
return
LDAP_COMPARE_FALSE
;
}
/*
* GSER Encoder : OCTET STRING
*/
int
GEncComponentOcts
(
GenBuf
*
b
,
ComponentOcts
*
in
)
{
if
(
!
in
||
in
->
value
.
octetLen
<=
0
)
return
(
-
1
);
return
GEncAsnOctsContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : OCTET STRING
*/
...
...
@@ -1204,6 +1308,15 @@ MatchingComponentOid ( char *oid, ComponentSyntaxInfo *csi_attr ,
return
rc
?
LDAP_COMPARE_TRUE
:
LDAP_COMPARE_FALSE
;
}
/*
* GSER Encoder : OID
*/
GEncComponentOid
(
GenBuf
*
b
,
ComponentOid
*
in
)
{
if
(
!
in
||
in
->
value
.
octetLen
<=
0
)
return
(
-
1
);
return
GEncAsnOidContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : OID
*/
...
...
@@ -1435,6 +1548,17 @@ MatchingComponentReal (char* oid, ComponentSyntaxInfo *csi_attr,
return
rc
?
LDAP_COMPARE_TRUE
:
LDAP_COMPARE_FALSE
;
}
/*
* GSER Encoder : Real
*/
int
GEncComponentReal
(
GenBuf
*
b
,
ComponentReal
*
in
)
{
if
(
!
in
)
return
(
-
1
);
return
GEncAsnRealContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : Real
*/
...
...
@@ -1563,6 +1687,17 @@ MatchingComponentRelativeOid ( char* oid, ComponentSyntaxInfo *csi_attr,
return
rc
?
LDAP_COMPARE_TRUE
:
LDAP_COMPARE_FALSE
;
}
/*
* GSER Encoder : RELATIVE_OID.
*/
int
GEncComponentRelativeOid
(
GenBuf
*
b
,
ComponentRelativeOid
*
in
)
{
if
(
!
in
||
in
->
value
.
octetLen
<=
0
)
return
(
-
1
);
return
GEncAsnRelativeOidContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : RELATIVE_OID.
*/
...
...
@@ -1664,7 +1799,18 @@ BDecComponentRelativeOid ( void* mem_op, GenBuf *b, AsnTag tagId, AsnLen len, vo
}
/*
* GSER Decoder : UniverseString
* GSER Encoder : UniversalString
*/
int
GEncComponentUniversalString
(
GenBuf
*
b
,
ComponentUniversalString
*
in
)
{
if
(
!
in
||
in
->
value
.
octetLen
<=
0
)
return
(
-
1
);
return
GEncUniversalStringContent
(
b
,
&
in
->
value
);
}
/*
* GSER Decoder : UniversalString
*/
static
int
UTF8toUniversalString
(
char
*
octs
,
int
len
){
...
...
@@ -1821,6 +1967,14 @@ SetAnyTypeByComponentInt( ComponentAny *v, ComponentInt id) {
v
->
cai
=
NULL
;
}
int
GEncComponentAny
(
GenBuf
*
b
,
ComponentAny
*
in
)
{
if
(
in
->
cai
!=
NULL
&&
in
->
cai
->
Encode
!=
NULL
)
return
in
->
cai
->
Encode
(
b
,
&
in
->
value
);
else
return
(
-
1
);
}
int
BDecComponentAny
(
void
*
mem_op
,
GenBuf
*
b
,
ComponentAny
*
result
,
AsnLen
*
bytesDecoded
,
int
mode
)
{
ComponentAny
*
k
,
**
k2
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment