net-ldap 0.11 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of net-ldap might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.rubocop.yml +15 -0
- data/.rubocop_todo.yml +471 -180
- data/.travis.yml +10 -5
- data/Contributors.rdoc +1 -0
- data/History.rdoc +60 -0
- data/README.rdoc +18 -11
- data/Rakefile +0 -1
- data/lib/net/ber/ber_parser.rb +4 -4
- data/lib/net/ber/core_ext/array.rb +1 -1
- data/lib/net/ber/core_ext/integer.rb +1 -1
- data/lib/net/ber/core_ext/string.rb +1 -1
- data/lib/net/ber.rb +37 -5
- data/lib/net/ldap/auth_adapter/gss_spnego.rb +41 -0
- data/lib/net/ldap/auth_adapter/sasl.rb +62 -0
- data/lib/net/ldap/auth_adapter/simple.rb +34 -0
- data/lib/net/ldap/auth_adapter.rb +29 -0
- data/lib/net/ldap/connection.rb +197 -187
- data/lib/net/ldap/dataset.rb +2 -2
- data/lib/net/ldap/dn.rb +4 -5
- data/lib/net/ldap/entry.rb +4 -5
- data/lib/net/ldap/error.rb +36 -1
- data/lib/net/ldap/filter.rb +6 -6
- data/lib/net/ldap/pdu.rb +26 -2
- data/lib/net/ldap/version.rb +1 -1
- data/lib/net/ldap.rb +189 -75
- data/lib/net/snmp.rb +18 -18
- data/net-ldap.gemspec +4 -2
- data/script/changelog +47 -0
- data/script/generate-fixture-ca +48 -0
- data/script/install-openldap +67 -44
- data/test/ber/core_ext/test_array.rb +1 -1
- data/test/ber/test_ber.rb +11 -3
- data/test/fixtures/ca/ca.info +4 -0
- data/test/fixtures/ca/cacert.pem +24 -0
- data/test/fixtures/ca/cakey.pem +190 -0
- data/test/fixtures/openldap/slapd.conf.ldif +1 -1
- data/test/integration/test_add.rb +1 -1
- data/test/integration/test_ber.rb +1 -1
- data/test/integration/test_bind.rb +220 -10
- data/test/integration/test_delete.rb +1 -1
- data/test/integration/test_open.rb +1 -1
- data/test/integration/test_password_modify.rb +80 -0
- data/test/integration/test_search.rb +1 -1
- data/test/support/vm/openldap/README.md +35 -3
- data/test/support/vm/openldap/Vagrantfile +1 -0
- data/test/test_auth_adapter.rb +15 -0
- data/test/test_dn.rb +3 -3
- data/test/test_filter.rb +4 -4
- data/test/test_filter_parser.rb +4 -0
- data/test/test_helper.rb +10 -2
- data/test/test_ldap.rb +64 -10
- data/test/test_ldap_connection.rb +115 -28
- data/test/test_ldif.rb +11 -11
- data/test/test_search.rb +2 -2
- data/test/test_snmp.rb +4 -4
- data/testserver/ldapserver.rb +11 -12
- metadata +50 -8
- data/test/fixtures/cacert.pem +0 -20
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
BASE_PATH=$( cd "`dirname $0`/../test/fixtures/ca" && pwd )
|
4
|
+
cd "${BASE_PATH}" || exit 4
|
5
|
+
|
6
|
+
USAGE=$( cat << EOS
|
7
|
+
Usage:
|
8
|
+
$0 --regenerate
|
9
|
+
|
10
|
+
Generates a new self-signed CA, for integration testing. This should only need
|
11
|
+
to be run if you are writing new TLS/SSL tests, and need to generate
|
12
|
+
additional fixtuer CAs.
|
13
|
+
|
14
|
+
This script uses the GnuTLS certtool CLI. If you are on macOS,
|
15
|
+
'brew install gnutls', and it will be installed as 'gnutls-certtool'.
|
16
|
+
Apple unfortunately ships with an incompatible /usr/bin/certtool that does
|
17
|
+
different things.
|
18
|
+
EOS
|
19
|
+
)
|
20
|
+
|
21
|
+
if [ "x$1" != 'x--regenerate' ]; then
|
22
|
+
echo "${USAGE}"
|
23
|
+
exit 1
|
24
|
+
fi
|
25
|
+
|
26
|
+
TOOL=`type -p certtool`
|
27
|
+
if [ "$(uname)" = "Darwin" ]; then
|
28
|
+
TOOL=`type -p gnutls-certtool`
|
29
|
+
if [ ! -x "${TOOL}" ]; then
|
30
|
+
echo "Sorry, Darwin requires gnutls-certtool; try `brew install gnutls`"
|
31
|
+
exit 2
|
32
|
+
fi
|
33
|
+
fi
|
34
|
+
|
35
|
+
if [ ! -x "${TOOL}" ]; then
|
36
|
+
echo "Sorry, no certtool found!"
|
37
|
+
exit 3
|
38
|
+
fi
|
39
|
+
export TOOL
|
40
|
+
|
41
|
+
|
42
|
+
${TOOL} --generate-privkey > ./cakey.pem
|
43
|
+
${TOOL} --generate-self-signed \
|
44
|
+
--load-privkey ./cakey.pem \
|
45
|
+
--template ./ca.info \
|
46
|
+
--outfile ./cacert.pem
|
47
|
+
|
48
|
+
echo "cert and private key generated! Don't forget to check them in"
|
data/script/install-openldap
CHANGED
@@ -2,92 +2,104 @@
|
|
2
2
|
set -e
|
3
3
|
set -x
|
4
4
|
|
5
|
-
BASE_PATH
|
6
|
-
SEED_PATH
|
5
|
+
BASE_PATH=$( cd "`dirname $0`/../test/fixtures/openldap" && pwd )
|
6
|
+
SEED_PATH=$( cd "`dirname $0`/../test/fixtures" && pwd )
|
7
7
|
|
8
8
|
dpkg -s slapd time ldap-utils gnutls-bin ssl-cert > /dev/null ||\
|
9
|
-
DEBIAN_FRONTEND=noninteractive
|
9
|
+
DEBIAN_FRONTEND=noninteractive apt-get update -y --force-yes && \
|
10
|
+
DEBIAN_FRONTEND=noninteractive apt-get install -y --force-yes slapd time ldap-utils gnutls-bin ssl-cert
|
10
11
|
|
11
|
-
|
12
|
+
/etc/init.d/slapd stop
|
12
13
|
|
13
14
|
TMPDIR=$(mktemp -d)
|
14
15
|
cd $TMPDIR
|
15
16
|
|
16
17
|
# Delete data and reconfigure.
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
cp -v /var/lib/ldap/DB_CONFIG ./DB_CONFIG
|
19
|
+
rm -rf /etc/ldap/slapd.d/*
|
20
|
+
rm -rf /var/lib/ldap/*
|
21
|
+
cp -v ./DB_CONFIG /var/lib/ldap/DB_CONFIG
|
22
|
+
slapadd -F /etc/ldap/slapd.d -b "cn=config" -l $BASE_PATH/slapd.conf.ldif
|
22
23
|
# Load memberof and ref-int overlays and configure them.
|
23
|
-
|
24
|
+
slapadd -F /etc/ldap/slapd.d -b "cn=config" -l $BASE_PATH/memberof.ldif
|
24
25
|
# Load retcode overlay and configure
|
25
|
-
|
26
|
+
slapadd -F /etc/ldap/slapd.d -b "cn=config" -l $BASE_PATH/retcode.ldif
|
26
27
|
|
27
28
|
# Add base domain.
|
28
|
-
|
29
|
+
slapadd -F /etc/ldap/slapd.d <<EOM
|
29
30
|
dn: dc=rubyldap,dc=com
|
30
31
|
objectClass: top
|
31
32
|
objectClass: domain
|
32
33
|
dc: rubyldap
|
33
34
|
EOM
|
34
35
|
|
35
|
-
|
36
|
-
|
36
|
+
chown -R openldap.openldap /etc/ldap/slapd.d
|
37
|
+
chown -R openldap.openldap /var/lib/ldap
|
37
38
|
|
38
|
-
|
39
|
+
/etc/init.d/slapd start
|
39
40
|
|
40
41
|
# Import seed data.
|
41
42
|
# NOTE: use ldapadd in order for memberOf and refint to apply, instead of:
|
42
|
-
# cat $SEED_PATH/seed.ldif |
|
43
|
-
/usr/bin/time
|
43
|
+
# cat $SEED_PATH/seed.ldif | slapadd -F /etc/ldap/slapd.d
|
44
|
+
/usr/bin/time ldapadd -x -D "cn=admin,dc=rubyldap,dc=com" -w passworD1 \
|
44
45
|
-h localhost -p 389 \
|
45
46
|
-f $SEED_PATH/seed.ldif
|
46
47
|
|
47
|
-
|
48
|
+
rm -rf $TMPDIR
|
48
49
|
|
49
50
|
# SSL
|
51
|
+
export CA_CERT="/usr/local/share/ca-certificates/rubyldap-ca.crt"
|
52
|
+
export CA_KEY="/etc/ssl/private/rubyldap-ca.key"
|
50
53
|
|
51
|
-
|
54
|
+
# The self-signed fixture CA cert & key are generated by
|
55
|
+
# `script/generate-fiuxture-ca` and checked into version control.
|
56
|
+
# You shouldn't need to muck with these unless you're writing more
|
57
|
+
# TLS/SSL integration tests, and need special magic values in the cert.
|
52
58
|
|
53
|
-
|
54
|
-
|
55
|
-
ca
|
56
|
-
cert_signing_key
|
57
|
-
EOF"
|
59
|
+
cp "${SEED_PATH}/ca/cacert.pem" "${CA_CERT}"
|
60
|
+
cp "${SEED_PATH}/ca/cakey.pem" "${CA_KEY}"
|
58
61
|
|
59
|
-
#
|
60
|
-
|
61
|
-
--load-privkey /etc/ssl/private/cakey.pem \
|
62
|
-
--template /etc/ssl/ca.info \
|
63
|
-
--outfile /etc/ssl/certs/cacert.pem
|
62
|
+
# actually add the fixture CA to the system store
|
63
|
+
update-ca-certificates
|
64
64
|
|
65
65
|
# Make a private key for the server:
|
66
|
-
|
67
|
-
--bits 1024 \
|
68
|
-
--outfile /etc/ssl/private/ldap01_slapd_key.pem
|
66
|
+
certtool --generate-privkey \
|
67
|
+
--bits 1024 \
|
68
|
+
--outfile /etc/ssl/private/ldap01_slapd_key.pem
|
69
69
|
|
70
|
-
|
70
|
+
sh -c "cat > /etc/ssl/ldap01.info <<EOF
|
71
71
|
organization = Example Company
|
72
72
|
cn = ldap01.example.com
|
73
|
+
dns_name = ldap01.example.com
|
74
|
+
dns_name = ldap02.example.com
|
75
|
+
dns_name = localhost
|
73
76
|
tls_www_server
|
74
77
|
encryption_key
|
75
78
|
signing_key
|
76
79
|
expiration_days = 3650
|
77
80
|
EOF"
|
78
81
|
|
82
|
+
# The integration server may be accessed by IP address, in which case
|
83
|
+
# we want some of the IPs included in the cert. We skip loopback (127.0.0.1)
|
84
|
+
# because that's the IP we use in the integration test for cert name mismatches.
|
85
|
+
ADDRS=$(ifconfig -a | grep 'inet addr:' | cut -f 2 -d : | cut -f 1 -d ' ')
|
86
|
+
for ip in $ADDRS; do
|
87
|
+
if [ "x$ip" = 'x127.0.0.1' ]; then continue; fi
|
88
|
+
echo "ip_address = $ip" >> /etc/ssl/ldap01.info
|
89
|
+
done
|
90
|
+
|
79
91
|
# Create the server certificate
|
80
|
-
|
92
|
+
certtool --generate-certificate \
|
81
93
|
--load-privkey /etc/ssl/private/ldap01_slapd_key.pem \
|
82
|
-
--load-ca-certificate
|
83
|
-
--load-ca-privkey
|
94
|
+
--load-ca-certificate "${CA_CERT}" \
|
95
|
+
--load-ca-privkey "${CA_KEY}" \
|
84
96
|
--template /etc/ssl/ldap01.info \
|
85
97
|
--outfile /etc/ssl/certs/ldap01_slapd_cert.pem
|
86
98
|
|
87
|
-
|
99
|
+
ldapmodify -Y EXTERNAL -H ldapi:/// <<EOF | true
|
88
100
|
dn: cn=config
|
89
101
|
add: olcTLSCACertificateFile
|
90
|
-
olcTLSCACertificateFile:
|
102
|
+
olcTLSCACertificateFile: ${CA_CERT}
|
91
103
|
-
|
92
104
|
add: olcTLSCertificateFile
|
93
105
|
olcTLSCertificateFile: /etc/ssl/certs/ldap01_slapd_cert.pem
|
@@ -101,11 +113,22 @@ EOF
|
|
101
113
|
# protected by TLS/SSL whereas LDAPS, like HTTPS, is a distinct
|
102
114
|
# encrypted-from-the-start protocol that operates over TCP port 636. But we
|
103
115
|
# enable it for testing here.
|
104
|
-
|
116
|
+
sed -i -e 's|^SLAPD_SERVICES="\(.*\)"|SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"|' /etc/default/slapd
|
117
|
+
|
118
|
+
adduser openldap ssl-cert
|
119
|
+
chgrp ssl-cert /etc/ssl/private/ldap01_slapd_key.pem
|
120
|
+
chmod g+r /etc/ssl/private/ldap01_slapd_key.pem
|
121
|
+
chmod o-r /etc/ssl/private/ldap01_slapd_key.pem
|
122
|
+
|
123
|
+
# Drop packets on a secondary port used to specific timeout tests
|
124
|
+
iptables -A INPUT -p tcp -j DROP --dport 8389
|
125
|
+
|
126
|
+
# Forward a port for Vagrant
|
127
|
+
iptables -t nat -A PREROUTING -p tcp --dport 9389 -j REDIRECT --to-port 389
|
105
128
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
129
|
+
# fix up /etc/hosts for cert validation
|
130
|
+
grep ldap01 /etc/hosts || echo "127.0.0.1 ldap01.example.com" >> /etc/hosts
|
131
|
+
grep ldap02 /etc/hosts || echo "127.0.0.1 ldap02.example.com" >> /etc/hosts
|
132
|
+
grep bogus /etc/hosts || echo "127.0.0.1 bogus.example.com" >> /etc/hosts
|
110
133
|
|
111
|
-
|
134
|
+
service slapd restart
|
@@ -6,7 +6,7 @@ class TestBERArrayExtension < Test::Unit::TestCase
|
|
6
6
|
control_codes << ['1.2.3'.to_ber, true.to_ber].to_ber_sequence
|
7
7
|
control_codes << ['1.7.9'.to_ber, false.to_ber].to_ber_sequence
|
8
8
|
control_codes = control_codes.to_ber_sequence
|
9
|
-
res = [['1.2.3', true],['1.7.9',false]].to_ber_control
|
9
|
+
res = [['1.2.3', true], ['1.7.9', false]].to_ber_control
|
10
10
|
assert_equal control_codes, res
|
11
11
|
end
|
12
12
|
|
data/test/ber/test_ber.rb
CHANGED
@@ -6,8 +6,8 @@ class TestBEREncoding < Test::Unit::TestCase
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def test_array
|
9
|
-
ary = [1,2,3]
|
10
|
-
encoded_ary = ary.map
|
9
|
+
ary = [1, 2, 3]
|
10
|
+
encoded_ary = ary.map(&:to_ber).to_ber
|
11
11
|
|
12
12
|
assert_equal ary, encoded_ary.read_ber
|
13
13
|
end
|
@@ -135,7 +135,15 @@ class TestBERIdentifiedString < Test::Unit::TestCase
|
|
135
135
|
assert_equal "UTF-8", bis.encoding.name
|
136
136
|
end
|
137
137
|
|
138
|
-
def
|
138
|
+
def test_umlaut_data_in_utf8
|
139
|
+
data = "Müller".force_encoding("UTF-8")
|
140
|
+
bis = Net::BER::BerIdentifiedString.new(data)
|
141
|
+
|
142
|
+
assert bis.valid_encoding?, "should be a valid encoding"
|
143
|
+
assert_equal "UTF-8", bis.encoding.name
|
144
|
+
end
|
145
|
+
|
146
|
+
def test_utf8_data_in_utf8
|
139
147
|
data = ["e4b8ad"].pack("H*").force_encoding("UTF-8")
|
140
148
|
bis = Net::BER::BerIdentifiedString.new(data)
|
141
149
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIID7zCCAlegAwIBAgIMV7zWei6SNfABx6jMMA0GCSqGSIb3DQEBCwUAMBMxETAP
|
3
|
+
BgNVBAMTCHJ1YnlsZGFwMB4XDTE2MDgyMzIzMDQyNloXDTM2MDUxMDIzMDQyNlow
|
4
|
+
EzERMA8GA1UEAxMIcnVieWxkYXAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
|
5
|
+
AoIBgQDGe9wziGHZJhIf+IEKSk1tpT9Mu7YgsUwjrlutvkoO1Q6K+amTAVDXizPf
|
6
|
+
1DVSDpZP5+CfBOznhgLMsPvrQ02w4qx5/6X9L+zJcMk8jTNYSKj5uIKpK52E7Uok
|
7
|
+
aygMXeaqroPONGkoJIZiVGgdbWfTvcffTm8FOhztXUbMrMXJNinFsocGHEoMNN8b
|
8
|
+
vqgAyG4+DFHoK4L0c6eQjE4nZBChieZdShUhaBpV7r2qSNbPw67cvAKuEzml58mV
|
9
|
+
1ZF1F73Ua8gPWXHEfUe2GEfG0NnRq6sGbsDYe/DIKxC7AZ89udZF3WZXNrPhvXKj
|
10
|
+
ZT7njwcMQemns4dNPQ0k2V4vAQ8pD8r8Qvb65FiSopUhVaGQswAnIMS1DnFq88AQ
|
11
|
+
KJTKIXbBuMwuaNNSs6R/qTS2RDk1w+CGpRXAg7+1SX5NKdrEsu1IaABA/tQ/zKKk
|
12
|
+
OLLJaD0giX1weBVmNeFcKxIoT34VS59eEt5APmPcguJnx+aBrA9TLzSO788apBN0
|
13
|
+
4lGAmR0CAwEAAaNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwQA
|
14
|
+
MB0GA1UdDgQWBBRTvXSkge03oqLu7UUjFI+oLYwnujANBgkqhkiG9w0BAQsFAAOC
|
15
|
+
AYEATSZQWH+uSN5GvOUvJ8LHWkeVovn0UhboK0K7GzmMeGz+dp/Xrj6eQ4ONK0zI
|
16
|
+
RCJyoo/nCR7CfQ5ujVXr03XD2SUgyD565ulXuhw336DasL5//fucmQYDeqhwbKML
|
17
|
+
FTzsF9H9dO4J5TjxJs7e5dRJ0wrP/XEY+WFhXXdSHTl8vGCI6QqWc7TvDpmbS4iX
|
18
|
+
uTzjJswu9Murt9JUJNMN2DlDi/vBBeruaj4c2cMMnKMvkfj14kd8wMocmzj+gVQl
|
19
|
+
r+fRQbKAJNec65lA4/Zeb6sD9SAi0ZIVgxA4a7g8/sdNWHIAxPicpJkIJf30TsyY
|
20
|
+
F+8+Hd5mBtCbvFfAVkT6bHBP1OiAgNke+Rh/j/sQbyWbKCKw0+jpFJgO9KUNGfC0
|
21
|
+
O/CqX+J4G7HqL8VJqrLnBvOdhfetAvNQtf1gcw5ZwpeEFM+Kvx/lsILaIYdAUSjX
|
22
|
+
ePOc5gI2Bi9WXq+T9AuhSf+TWUR874m/rdTWe5fM8mXCNl7C4I5zCqLltEDkSoMP
|
23
|
+
jDj/
|
24
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,190 @@
|
|
1
|
+
Public Key Info:
|
2
|
+
Public Key Algorithm: RSA
|
3
|
+
Key Security Level: High (3072 bits)
|
4
|
+
|
5
|
+
modulus:
|
6
|
+
00:c6:7b:dc:33:88:61:d9:26:12:1f:f8:81:0a:4a:4d
|
7
|
+
6d:a5:3f:4c:bb:b6:20:b1:4c:23:ae:5b:ad:be:4a:0e
|
8
|
+
d5:0e:8a:f9:a9:93:01:50:d7:8b:33:df:d4:35:52:0e
|
9
|
+
96:4f:e7:e0:9f:04:ec:e7:86:02:cc:b0:fb:eb:43:4d
|
10
|
+
b0:e2:ac:79:ff:a5:fd:2f:ec:c9:70:c9:3c:8d:33:58
|
11
|
+
48:a8:f9:b8:82:a9:2b:9d:84:ed:4a:24:6b:28:0c:5d
|
12
|
+
e6:aa:ae:83:ce:34:69:28:24:86:62:54:68:1d:6d:67
|
13
|
+
d3:bd:c7:df:4e:6f:05:3a:1c:ed:5d:46:cc:ac:c5:c9
|
14
|
+
36:29:c5:b2:87:06:1c:4a:0c:34:df:1b:be:a8:00:c8
|
15
|
+
6e:3e:0c:51:e8:2b:82:f4:73:a7:90:8c:4e:27:64:10
|
16
|
+
a1:89:e6:5d:4a:15:21:68:1a:55:ee:bd:aa:48:d6:cf
|
17
|
+
c3:ae:dc:bc:02:ae:13:39:a5:e7:c9:95:d5:91:75:17
|
18
|
+
bd:d4:6b:c8:0f:59:71:c4:7d:47:b6:18:47:c6:d0:d9
|
19
|
+
d1:ab:ab:06:6e:c0:d8:7b:f0:c8:2b:10:bb:01:9f:3d
|
20
|
+
b9:d6:45:dd:66:57:36:b3:e1:bd:72:a3:65:3e:e7:8f
|
21
|
+
07:0c:41:e9:a7:b3:87:4d:3d:0d:24:d9:5e:2f:01:0f
|
22
|
+
29:0f:ca:fc:42:f6:fa:e4:58:92:a2:95:21:55:a1:90
|
23
|
+
b3:00:27:20:c4:b5:0e:71:6a:f3:c0:10:28:94:ca:21
|
24
|
+
76:c1:b8:cc:2e:68:d3:52:b3:a4:7f:a9:34:b6:44:39
|
25
|
+
35:c3:e0:86:a5:15:c0:83:bf:b5:49:7e:4d:29:da:c4
|
26
|
+
b2:ed:48:68:00:40:fe:d4:3f:cc:a2:a4:38:b2:c9:68
|
27
|
+
3d:20:89:7d:70:78:15:66:35:e1:5c:2b:12:28:4f:7e
|
28
|
+
15:4b:9f:5e:12:de:40:3e:63:dc:82:e2:67:c7:e6:81
|
29
|
+
ac:0f:53:2f:34:8e:ef:cf:1a:a4:13:74:e2:51:80:99
|
30
|
+
1d:
|
31
|
+
|
32
|
+
public exponent:
|
33
|
+
01:00:01:
|
34
|
+
|
35
|
+
private exponent:
|
36
|
+
1d:0d:9a:50:ec:c0:ad:e1:75:bb:ba:4b:61:2f:39:20
|
37
|
+
38:95:08:6d:5d:9e:71:75:5c:af:b3:f9:bd:a5:e7:7f
|
38
|
+
e6:4e:0f:77:73:ee:38:60:24:9f:26:3f:50:c2:bf:21
|
39
|
+
df:76:68:99:be:45:d3:29:f9:94:ee:bf:21:53:cb:b6
|
40
|
+
7d:a7:93:80:09:53:03:45:dc:c2:a6:a2:37:64:f1:a2
|
41
|
+
49:21:ac:91:6b:a3:d7:bd:d2:62:0c:ec:a6:83:10:e7
|
42
|
+
a7:ca:3d:be:dc:4b:1c:36:24:79:96:33:5b:43:5d:74
|
43
|
+
50:0e:46:b0:9b:6d:9f:71:06:89:a5:c8:65:ed:d9:a3
|
44
|
+
15:00:3c:3e:a9:75:50:9d:72:cb:c9:aa:e1:ba:a3:9c
|
45
|
+
07:77:14:32:30:d4:4d:65:f4:7c:23:1d:79:84:9b:2e
|
46
|
+
9a:19:df:43:ed:cd:e3:08:1f:d5:ff:6b:42:98:36:f7
|
47
|
+
44:cc:48:b4:f7:b8:16:b3:23:37:8d:b8:22:3f:8a:86
|
48
|
+
db:71:b3:85:2d:6d:42:44:b7:dc:c1:36:e0:c4:0f:fe
|
49
|
+
cb:76:84:81:e2:83:f5:82:76:a9:7b:35:d5:44:00:d1
|
50
|
+
1a:fc:ef:b9:a4:2b:62:aa:f8:56:eb:60:e5:16:33:f1
|
51
|
+
28:e1:da:91:50:e3:a4:c7:d6:30:21:cf:04:07:cd:8c
|
52
|
+
b6:9e:b0:a7:6c:96:57:2e:09:5b:39:26:d0:60:be:e3
|
53
|
+
90:59:a3:8e:e7:6e:3f:62:7e:b4:2a:e1:8f:00:37:7a
|
54
|
+
83:9e:7a:9c:d2:ae:ba:50:84:73:65:3a:64:95:d8:48
|
55
|
+
f9:fd:0e:c3:5b:6e:08:3b:c5:c9:1c:29:55:bb:67:e8
|
56
|
+
fa:50:40:30:2a:d1:b7:cf:54:a8:f0:f0:76:89:ad:19
|
57
|
+
e7:a0:3a:56:6c:75:c5:bc:d8:46:ce:1e:66:f2:61:96
|
58
|
+
11:e4:57:cc:52:ff:e4:ed:6b:2c:ce:78:15:ba:b7:ed
|
59
|
+
31:f2:68:88:79:bf:7c:29:3c:2f:66:71:0b:09:b7:41
|
60
|
+
|
61
|
+
|
62
|
+
prime1:
|
63
|
+
00:fd:c2:37:b9:6f:77:88:51:a2:f7:4f:c2:3c:a4:57
|
64
|
+
bf:ba:71:14:f3:61:f4:39:78:22:3d:bc:d8:d2:4e:c0
|
65
|
+
4b:9e:c2:6d:38:a8:21:e2:70:1a:96:48:95:18:85:01
|
66
|
+
46:fb:62:a4:81:09:f8:2a:3a:87:78:07:5d:93:54:ce
|
67
|
+
2a:51:b3:51:6f:61:0a:2e:9d:b0:51:37:e3:13:bd:81
|
68
|
+
23:2b:61:53:fa:ac:08:dc:a0:e6:63:a3:b0:cc:cf:73
|
69
|
+
1d:65:b7:11:bc:29:70:fb:72:ea:63:9d:67:02:d6:35
|
70
|
+
24:13:1d:bc:72:fb:9e:3d:ab:0b:57:6e:bd:a1:51:56
|
71
|
+
f9:bc:96:15:74:a3:31:16:c6:b8:98:1b:0a:a2:59:7c
|
72
|
+
c8:b7:14:b8:5b:f3:2e:26:b4:f0:46:c4:3d:27:dd:41
|
73
|
+
31:52:a7:15:a8:af:6a:98:a5:9c:20:17:f9:1d:54:54
|
74
|
+
ff:10:91:a3:a5:ca:ac:63:e7:16:2b:71:3c:3a:cd:4f
|
75
|
+
ed:
|
76
|
+
|
77
|
+
prime2:
|
78
|
+
00:c8:3c:a8:9f:8a:db:42:b5:8d:cf:2a:a1:2f:e5:73
|
79
|
+
05:de:30:d8:17:b9:5c:9d:08:60:02:c9:66:9d:88:50
|
80
|
+
ac:cd:0f:b5:47:b4:a8:73:3b:7d:65:79:bf:4c:6f:d0
|
81
|
+
e2:03:ed:d4:28:4e:00:07:23:00:01:4f:05:de:9b:44
|
82
|
+
1a:84:ae:09:4a:d6:ed:61:5d:77:e2:fa:13:99:4c:b7
|
83
|
+
76:72:3d:f8:53:93:69:78:e8:bd:26:cb:b0:f9:01:f4
|
84
|
+
1d:20:4f:60:f5:ab:3c:19:85:73:34:f3:ec:d2:67:ef
|
85
|
+
56:b8:5d:93:73:8e:d9:3e:28:ff:87:f5:4a:26:fa:b1
|
86
|
+
ae:c6:d3:9d:03:e3:fd:c2:24:48:af:85:2a:8e:3b:5b
|
87
|
+
93:07:38:91:21:ae:49:cb:6d:e3:30:81:15:ed:65:eb
|
88
|
+
dc:01:df:3b:9d:43:fd:a6:e1:df:ef:ad:22:42:34:f1
|
89
|
+
3f:81:5e:57:0a:e0:56:94:f2:2a:00:d0:cc:c5:50:67
|
90
|
+
f1:
|
91
|
+
|
92
|
+
coefficient:
|
93
|
+
00:bd:23:8c:2e:a7:7b:6b:1e:85:77:db:7d:77:f6:e5
|
94
|
+
b0:15:c6:e1:9e:35:57:72:df:35:6d:93:89:7f:83:9f
|
95
|
+
63:7f:08:0a:b3:d4:ba:63:9b:10:7f:0f:d3:55:e9:38
|
96
|
+
cf:90:37:3d:85:3d:a7:97:8c:33:f2:c2:b1:38:2b:db
|
97
|
+
39:ca:a8:d0:23:d7:89:cc:8d:02:7d:61:9b:b6:04:69
|
98
|
+
14:e8:c9:84:34:36:6c:fb:84:58:cc:9a:53:74:a4:42
|
99
|
+
bd:1d:25:1b:ba:82:c0:fb:23:2c:90:bb:35:4b:5b:b0
|
100
|
+
98:d0:ab:9d:61:6e:ea:e8:84:e7:a7:6c:ae:1b:2c:00
|
101
|
+
cb:0f:1a:f8:e2:7c:fd:42:1a:e2:13:52:c7:50:fa:65
|
102
|
+
c9:5f:ed:40:a8:7f:46:0e:ce:f6:56:83:6f:0e:8e:39
|
103
|
+
f8:33:5f:83:de:be:be:ef:8c:66:ad:16:c8:ec:98:d4
|
104
|
+
b2:b2:55:66:a2:9e:27:6a:84:f1:31:07:e8:bf:a7:a7
|
105
|
+
bd:
|
106
|
+
|
107
|
+
exp1:
|
108
|
+
00:b6:50:0c:53:19:07:8b:14:03:fe:a4:fa:0b:31:93
|
109
|
+
ad:b7:18:b9:91:a6:c5:9d:68:77:49:5d:dd:75:33:89
|
110
|
+
2a:8b:54:6a:be:32:e5:ad:57:17:72:f3:90:d2:fd:f4
|
111
|
+
0d:f8:5c:45:8e:44:08:5c:e6:92:1f:a5:43:10:af:f4
|
112
|
+
33:29:61:a8:d7:59:a3:c4:1c:1c:ea:2d:39:e3:1b:da
|
113
|
+
a4:d6:ec:e5:36:0a:d5:8f:15:b6:90:cd:b1:1f:64:c7
|
114
|
+
f2:cd:fa:3a:2e:b2:a3:6e:b4:80:3b:b3:81:a7:e3:18
|
115
|
+
68:e3:a7:10:96:97:ba:77:d9:e4:9b:1b:7f:f8:5f:85
|
116
|
+
1a:85:e8:5a:5f:e3:43:48:76:db:76:c4:ae:de:37:66
|
117
|
+
d4:99:dc:b4:1b:b3:da:6b:8a:c1:ba:46:11:1e:0b:f3
|
118
|
+
63:a9:5b:4b:cf:56:c0:42:0d:71:df:08:fa:3c:9d:33
|
119
|
+
37:d1:c2:a1:0d:63:50:79:b2:34:16:60:13:82:b7:b1
|
120
|
+
7d:
|
121
|
+
|
122
|
+
exp2:
|
123
|
+
00:98:38:2c:c4:24:4e:2c:b7:52:17:a4:43:a6:e2:99
|
124
|
+
ff:62:fa:e4:bb:9c:49:40:83:66:61:97:f3:af:5c:3a
|
125
|
+
60:32:ff:77:03:0c:de:65:c3:5a:bf:72:bf:2f:7f:6d
|
126
|
+
5e:f4:37:af:69:f8:69:e3:03:03:74:fb:3a:ee:10:40
|
127
|
+
c4:9c:0a:a5:bb:c4:09:ef:53:9b:d8:eb:dd:4c:53:da
|
128
|
+
c0:6b:76:9a:ba:06:3d:4f:12:37:01:30:25:d8:16:59
|
129
|
+
1a:6f:3e:88:ea:19:83:75:af:52:76:75:dc:99:d3:33
|
130
|
+
4a:4c:9b:ae:85:51:99:ea:bc:46:0d:78:36:27:cd:ba
|
131
|
+
97:b0:44:9c:7f:a1:a9:7e:16:11:3f:85:4f:65:92:d0
|
132
|
+
39:c4:6a:87:42:00:79:ce:f1:39:9d:dc:f3:eb:65:e8
|
133
|
+
d8:76:7f:da:94:e2:64:08:a2:7b:97:7b:99:a8:95:10
|
134
|
+
b5:03:46:d1:8a:ce:22:63:d6:78:81:e8:39:52:e2:9e
|
135
|
+
31:
|
136
|
+
|
137
|
+
|
138
|
+
Public Key ID: 53:BD:74:A4:81:ED:37:A2:A2:EE:ED:45:23:14:8F:A8:2D:8C:27:BA
|
139
|
+
Public key's random art:
|
140
|
+
+--[ RSA 3072]----+
|
141
|
+
| . o. . |
|
142
|
+
| . +...+ |
|
143
|
+
| . o o.+ . |
|
144
|
+
| o o . . .ooo |
|
145
|
+
| o = . S o..o . |
|
146
|
+
| . o . .+.. |
|
147
|
+
|. . .. |
|
148
|
+
| . .. . |
|
149
|
+
|E oo.o |
|
150
|
+
+-----------------+
|
151
|
+
|
152
|
+
-----BEGIN RSA PRIVATE KEY-----
|
153
|
+
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
|
190
|
+
-----END RSA PRIVATE KEY-----
|
@@ -14,7 +14,7 @@ class TestAddIntegration < LDAPIntegrationTestCase
|
|
14
14
|
uid: "added-user1",
|
15
15
|
cn: "added-user1",
|
16
16
|
sn: "added-user1",
|
17
|
-
mail: "added-user1@rubyldap.com"
|
17
|
+
mail: "added-user1@rubyldap.com",
|
18
18
|
}
|
19
19
|
|
20
20
|
assert @ldap.add(dn: @dn, attributes: attrs), @ldap.get_operation_result.inspect
|