libnet-ldap binary transfers

B

Bedo Sandor

Hi,

I think there's a bug in libldap-ruby. I want to copy my CA CRL
entry from one a master ldap server to a slave, but ";binary"
attributes fails to add at the first "\000" characters.


This entry was read from the master ldap server: (converted to hash)

entry = {
"authorityRevocationList;binary"=>[""],
"cn"=>["Wallalat Hitelesito Kozpont (CA)"],
"cACertificate;binary"=>["0\202\004+0\202\003\023\240\003\002\001\002\002\001\0010\r\006\t*\206H\206\367\r\001\001\004\005\0000\201\2341\v0\t\006\003U\004\006\023\002HU1\0210\017\006\003U\004\010\023\010Budapest1\0210\017\006\003U\004\a\023\010Budapest1\0220\020\006\003U\004\n\023\tWallalat Rt.1+0)\006\003U\004\v\023\"Biztonsagi Szolgaltato Igazgatosag1&0$\006\003U\004\003\023\035Wallalat Hitelesito Kozpont (CA)0\036\027\r030605230000Z\027\r130606225959Z0\201\2341\v0\t\006\003U\004\006\023\002HU1\0210\017\006\003U\004\010\023\010Budapest1\0210\017\006\003U\004\a\023\010Budapest1\0220\020\006\003U\004\n\023\tWallalat Rt.1+0)\006\003U\004\v\023\"Biztonsagi Szolgaltato Igazgatosag1&0$\006\003U\004\003\023\035Wallalat Hitelesito Kozpont (CA)0\202\001\"0\r\006\t*\206H\206\367\r\001\001\001\005\000\003\202\001\017\0000\202\001\n\002\202\001\001\000\266x\034\264\271\v\3447\365\336\002'\234\270Wq\223\324\351tw\210~\354NjD\210?)f\323\030\237\025\343\370\305\271\201\302'\241\274\034f\e\212z\024\036\323\a\213\240a\311\207\203o\247$\035;\221\312p\0003\310\037\006\030\t\235\177\337\200ZP<F(q\252\202\226\352)j\310\275\230\377\212%\236U\e\231\254g@`h\233\225\f\025\36316.\23145\217\v\221\r8g\314\250\324\2047Vj\305\331\257x\202v\224\321\252\276uP\242.3'\333X0\232Q\363\344\241\341B\240\316\263\301\203\001\023\230\274\345<QV\236\372&%\325\245M\236\353j\001c\372(\211\345\247\227c\005\322m\356\212\037\205\272w\365G\022eM\231_a\217\203\246{\354\347\240\030S\226\252\226e\031\216\237\025k\330]\320g\317\300\231\252\377\f\336p\327\243\216v\223q\371\306t\337/[\254\206(\260\337\215#\251\202\341\002\003\001\000\001\243v0t0\021\006\t`\206H\001\206\370B\001\001\004\004\003\002\000\a0\017\006\003U\035\023\001\001\377\004\0050\003\001\001\3770\035\006\003U\035\016\004\026\004\024\t\313\t!\005\037\241\327\202M<\177\323\204\337\326\333^v\3560\037\006\003U\035#\004\0300\026\200\024\t\313\t!\005\037\241\327\202M<\177\323\204\337\326\333^v\3560\016\006\003U\035\017\001\001\377\004\004\003\002\001\2060\r\006\t*\206H\206\367\r\001\001\004\005\000\003
5\220\326\010\252\274\0013 n\251rt\267\352\221.*h\222\263\333r\002C\234\210\232=\204\237\031\231&\302\021\356\370\226-p\263\207\332\206w\272M?\002\250\273\373\222\322\265\r\224\20765Y\0308\351\235~\231\231q\255K\242\2444\227\211n\341'\327\310\241\216\205r\342\246j0\010;\240\355\261\360\177\215g\010}\320\374\246\a\273{\262\214\321W\305\a\324\006\005\356\a\313\370\026\220E\"\036\0376.\377\2176\357\216\371?lZd'\261'!\277\245-\344\333\363-9Mpe\273\036\215yF|\344\233\341FI\315\311\276Z\232\315\034\361@\021m`IP\220\354\e\303\211\301\177\"gu$D\331\323\334\322E[B\275bX\261b\334\020\025\002i\333\222\317\252\3257\253Z^tb6B\323\345_\024\311)z\323F\001Z_5\002Z\264\246,X\352\265\005)"],
"sn"=>["Wallalat Hitelesito Kozpont (CA)"],
"objectClass"=>["top", "person", "organizationalPerson", "inetOrgPerson", "certificationAuthority"],
"certificateRevocationList;binary"=>["0\202\003G0\202\002/0\r\006\t*\206H\206\367\r\001\001\005\005\0000\201\2341\v0\t\006\003U\004\006\023\002HU1\0210\017\006\003U\004\010\023\010Budapest1\0210\017\006\003U\004\a\023\010Budapest1\0220\020\006\003U\004\n\023\tWallalat Rt.1+0)\006\003U\004\v\023\"Biztonsagi Szolgaltato Igazgatosag1&0$\006\003U\004\003\023\035Wallalat Hitelesito Kozpont (CA)\027\r031217132400Z\027\r031224132400Z0\202\001_0\022\002\001,\027\r031127133549Z0\022\002\001+\027\r031127133549Z0\023\002\002\000\340\027\r031110121009Z0\023\002\002\000\256\027\r030704091518Z0\023\002\002\000\362\027\r031216110128Z0\023\002\002\000\255\027\r030704091550Z0\023\002\002\000\361\027\r031216110128Z0\023\002\002\0014\027\r031216110229Z0\023\002\002\0013\027\r031216110229Z0\023\002\002\002\272\027\r031213140726Z0\023\002\002\000\222\027\r030703084632Z0\023\002\002\003q\027\r031217132359Z0\022\002\001a\027\r030710092644Z0\023\002\002\001]\027\r031110120643Z0\022\002\001`\027\r030710092630Z0\022\002\001\030\027\r030903115136Z0\022\002\001\027\027\r030610135654Z0\r\006\t*\206H\206\367\r\001\001\005\005\000\003\202\001\001\000J\a\343g6\006-\354:Fr\037\023of3yg\272\363\361\027\002m>\2356*j\0363\221',\e\232=:\006\035(<i\002q\377|\366u\240%t\346\214\205\267\207S\264\360Z\314\344\231<\367H_\323,\343Hj\220o\27407\236n\215\316\231v\031\307<\233\t\341\346\212\002G5.\003\333\3645\222\017\232|\340\200\207i\246\233w\207\003\270\340\026FCf\232\221\373\361*\306H\312p\234\006\177\305FA\351:jT\306\305>O\3613\350\263I2\340\2337\300qn#\nR\324\205[\263nI0t\204\255\242>\273q\017\346Te\362\262|x \340[\373]\354k\316\260IZ\265\200\231\321\276\240\230\3667\010tic\036\211\354\256\265t2\251/\a=\325\010\207=\027\255z71*\020O\225v5\212\343|\360+\223\216'\351m\272'\t*\226\314\220\206?*\346[\217\320\213\245\202"]
}



The method I added the enry is derived from libnet-ldap examples:

class LDAP_connector
def []=(dn, entry)
entry = entry.to_hash
@ldap = LDAP::Conn.new(@host, @port)
@ldap.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, @proto)
@ldap.bind(@binddn, @passwd)
entry.delete('dn')
@ldap.add(dn, entry)
@ldap.unbind
end
end

xxx = LDAP_connector.new("host", 389, "user_dn", "password", ...)
xxx["cn=Wallalat Hitelesito Kozpont (CA),o=Wallalat"] = entry



After the above ldap-add, this can be read from the slave ldap server:

slave_entry = {
"cn"=>["Wallalat Hitelesito Kozpont (CA)"],
"authorityRevocationList;binary"=>[""],
"cACertificate;binary"=>["0\202\004+0\202\003\023\240\003\002\001\002\002\001\0010\r\006\t*\206H\206\367\r\001\001\004\005"],
"sn"=>["Wallalat Hitelesito Kozpont (CA)"],
"objectClass"=>["top", "person", "organizationalPerson", "inetOrgPerson", "certificationAuthority"],
"certificateRevocationList;binary"=>["0\202\003G0\202\002/0\r\006\t*\206H\206\367\r\001\001\005\005"],
"dn"=>["cn=Wallalat Hitelesito Kozpont (CA),o=Wallalat"]
}



It is clear, that the "\000" cuts the string:

cACertificate;binary
slave: "0\202\004+0\202\003\023\240\003\002\001\002\002\001\0010\r\006\t*\206H\206\367\r\001\001\004\005"
master: "0\202\004+0\202\003\023\240\003\002\001\002\002\001\0010\r\006\t*\206H\206\367\r\001\001\004\005\0000\201\2341\v0\t\006\003U\004\006\023\002HU1\0210\017\006\003U\004\010\023\010Budapest1\0210\017\006\003U\004\a\023\010Budapest1\0220\020\006\003U\004\n\023\tWallalat Rt.1+0)\006\003U\004\v\023\"Biztonsagi Szolgaltato Igazgatosag1&0$\006\003U\004\003\023\035Wallalat Hitelesito Kozpont (CA)0\036\027\r030605230000Z\027\r130606225959Z0\201\2341\v0\t\006\003U\004\006\023\002HU1\0210\017\006\003U\004\010\023\010Budapest1\0210\017\006\003U\004\a\023\010Budapest1\0220\020\006\003U\004\n\023\tWallalat Rt.1+0)\006\003U\004\v\023\"Biztonsagi Szolgaltato Igazgatosag1&0$\006\003U\004\003\023\035Wallalat Hitelesito Kozpont (CA)0\202\001\"0\r\006\t*\206H\206\367\r\001\001\001\005\000\003\202\001\017\0000\202\001\n\002\202\001\001\000\266x\034\264\271\v\3447\365\336\002'\234\270Wq\223\324\351tw\210~\354NjD\210?)f\323\030\237\025\343\370\305\271\201\302'\241\274\034f\e\212z\024\036\323\a\213\240a\311\207\203o\247$\035;\221\312p\0003\310\037\006\030\t\235\177\337\200ZP<F(q\252\202\226\352)j\310\275\230\377\212%\236U\e\231\254g@`h\233\225\f\025\36316.\23145\217\v\221\r8g\314\250\324\2047Vj\305\331\257x\202v\224\321\252\276uP\242.3'\333X0\232Q\363\344\241\341B\240\316\263\301\203\001\023\230\274\345<QV\236\372&%\325\245M\236\353j\001c\372(\211\345\247\227c\005\322m\356\212\037\205\272w\365G\022eM\231_a\217\203\246{\354\347\240\030S\226\252\226e\031\216\237\025k\330]\320g\317\300\231\252\377\f\336p\327\243\216v\223q\371\306t\337/[\254\206(\260\337\215#\251\202\341\002\003\001\000\001\243v0t0\021\006\t`\206H\001\206\370B\001\001\004\004\003\002\000\a0\017\006\003U\035\023\001\001\377\004\0050\003\001\001\3770\035\006\003U\035\016\004\026\004\024\t\313\t!\005\037\241\327\202M<\177\323\204\337\326\333^v\3560\037\006\003U\035#\004\0300\026\200\024\t\313\t!\005\037\241\327\202M<\177\323\204\337\326\333^v\3560\016\006\003U\035\017\001\001\377\004\004\003\002\001\2060\r\006\t*\206H\206\367\r\001\001\004\005\000\003\202\001\001\000c
74\0013 n\251rt\267\352\221.*h\222\263\333r\002C\234\210\232=\204\237\031\231&\302\021\356\370\226-p\263\207\332\206w\272M?\002\250\273\373\222\322\265\r\224\20765Y\0308\351\235~\231\231q\255K\242\2444\227\211n\341'\327\310\241\216\205r\342\246j0\010;\240\355\261\360\177\215g\010}\320\374\246\a\273{\262\214\321W\305\a\324\006\005\356\a\313\370\026\220E\"\036\0376.\377\2176\357\216\371?lZd'\261'!\277\245-\344\333\363-9Mpe\273\036\215yF|\344\233\341FI\315\311\276Z\232\315\034\361@\021m`IP\220\354\e\303\211\301\177\"gu$D\331\323\334\322E[B\275bX\261b\334\020\025\002i\333\222\317\252\3257\253Z^tb6B\323\345_\024\311)z\323F\001Z_5\002Z\264\246,X\352\265\005)"

certificateRevocationList;binary
slave: "0\202\003G0\202\002/0\r\006\t*\206H\206\367\r\001\001\005\005"
master: "0\202\003G0\202\002/0\r\006\t*\206H\206\367\r\001\001\005\005\0000\201\2341\v0\t\006\003U\004\006\023\002HU1\0210\017\006\003U\004\010\023\010Budapest1\0210\017\006\003U\004\a\023\010Budapest1\0220\020\006\003U\004\n\023\tWallalat Rt.1+0)\006\003U\004\v\023\"Biztonsagi Szolgaltato Igazgatosag1&0$\006\003U\004\003\023\035Wallalat Hitelesito Kozpont (CA)\027\r031217132400Z\027\r031224132400Z0\202\001_0\022\002\001,\027\r031127133549Z0\022\002\001+\027\r031127133549Z0\023\002\002\000\340\027\r031110121009Z0\023\002\002\000\256\027\r030704091518Z0\023\002\002\000\362\027\r031216110128Z0\023\002\002\000\255\027\r030704091550Z0\023\002\002\000\361\027\r031216110128Z0\023\002\002\0014\027\r031216110229Z0\023\002\002\0013\027\r031216110229Z0\023\002\002\002\272\027\r031213140726Z0\023\002\002\000\222\027\r030703084632Z0\023\002\002\003q\027\r031217132359Z0\022\002\001a\027\r030710092644Z0\023\002\002\001]\027\r031110120643Z0\022\002\001`\027\r030710092630Z0\022\002\001\030\027\r030903115136Z0\022\002\001\027\027\r030610135654Z0\r\006\t*\206H\206\367\r\001\001\005\005\000\003\202\001\001\000J\a\343g6\006-\354:Fr\037\023of3yg\272\363\361\027\002m>\2356*j\0363\221',\e\232=:\006\035(<i\002q\377|\366u\240%t\346\214\205\267\207S\264\360Z\314\344\231<\367H_\323,\343Hj\220o\27407\236n\215\316\231v\031\307<\233\t\341\346\212\002G5.\003\333\3645\222\017\232|\340\200\207i\246\233w\207\003\270\340\026FCf\232\221\373\361*\306H\312p\234\006\177\305FA\351:jT\306\305>O\3613\350\263I2\340\2337\300qn#\nR\324\205[\263nI0t\204\255\242>\273q\017\346Te\362\262|x \340[\373]\354k\316\260IZ\265\200\231\321\276\240\230\3667\010tic\036\211\354\256\265t2\251/\a=\325\010\207=\027\255z71*\020O\225v5\212\343|\360+\223\216'\351m\272'\t*\226\314\220\206?*\346[\217\320\213\245\202"


What can I do? Is it a bug or is there any other method to
ldap-add binary entries?


$ ruby -v
ruby 1.8.0 (2003-10-05) [i386-linux]
$ uname -a
Linux newage 2.4.22 #5 Sat Oct 18 07:00:13 UTC 2003 i686 GNU/Linux
$ dpkg -l libldap-ruby1.8 libldap2
ii libldap-ruby1.8 0.8.0+20030912-1 OpenLDAP library binding for Ruby 1.8
ii libldap2 2.1.22-1 OpenLDAP libraries
$ _
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,076
Latest member
OrderKetoBeez

Latest Threads

Top