Hi, I am trying to (independantly of openssl) generate the hash for a certificate (the short string that would be used as the symlink name in the openssl/certs directory). eg, this command openssl x509 -in CERT.pem -noout -hash I am trying to do this because I wanted to know how openssl was calculating this. At the bottom of the man page for x509 it states the following: The hash algorithm used in the -subject_hash and -issuer_hash options before OpenSSL 1.0.0 was based on the deprecated MD5 algorithm and the encoding of the distinguished name. In OpenSSL 1.0.0 and later it is based on a canonical version of the DN using SHA1. Thats a great start but not enough detail to let me generate this myself. Since I know the hash uses sha1 I should be able to generate the hash with "shasum" passing in the correct data. And there is the issue. All the conbinations of data I have passed in give me a different hash to what openssl generates. Its much longer but I beleive that is because openssl just chops everything past 8 chars off. Since the man page says its a hash of the DN (subject) I tried passing in the subject (in the various formats available from openssl) openssl x509 -noout -in CERT.pem -text | grep Subject: Subject: C=GB, O=My Company, OU=My Department, CN=MyName openssl x509 -in CERT.pem -noout -subject subject= /C=GB/O=My Company/OU=My Department/CN=MyName openssl x509 -in CERT.pem -noout -subject -nameopt RFC2253 subject= CN=MyName,OU=My Department,O=My Company,C=GB I then feed that into shasum like so (showing just one of the 6 combinations. I tried the subject for the three variations with and without the "subject= " or "Subject: " prefix) printf "CN=MyName,OU=My Department,O=My Company,C=GB" | shasum 6a73b8417b2f51195e1d0bcee3c2adbc1fb73124 - I tried looking at the code but I am not really a coder and definately not a C/C++ one and I was getting rather out of my depth trying to follow it. What I THINK my problem is is that the string that openssl is using as the input for the has is different to what I am using. Is there some way I can see what its using or am I going in the wrong direction here? Regards Ben