head 1.2; access; symbols perseant-exfatfs-base-20250801:1.2 perseant-exfatfs-base-20240630:1.2 perseant-exfatfs:1.2.0.22 perseant-exfatfs-base:1.2 cjep_sun2x:1.2.0.20 cjep_sun2x-base:1.2 cjep_staticlib_x-base1:1.2 cjep_staticlib_x:1.2.0.18 cjep_staticlib_x-base:1.2 phil-wifi-20200421:1.2 phil-wifi-20200411:1.2 phil-wifi-20200406:1.2 pgoyette-compat-merge-20190127:1.2 pgoyette-compat-20190127:1.2 pgoyette-compat-20190118:1.2 pgoyette-compat-1226:1.2 pgoyette-compat-1126:1.2 pgoyette-compat-1020:1.2 pgoyette-compat-0930:1.2 pgoyette-compat-0906:1.2 pgoyette-compat-0728:1.2 pgoyette-compat-0625:1.2 pgoyette-compat-0521:1.2 pgoyette-compat-0502:1.2 pgoyette-compat-0422:1.2 pgoyette-compat-0415:1.2 pgoyette-compat-0407:1.2 pgoyette-compat-0330:1.2 pgoyette-compat-0322:1.2 pgoyette-compat-0315:1.2 pgoyette-compat:1.2.0.16 pgoyette-compat-base:1.2 perseant-stdc-iso10646:1.2.0.14 perseant-stdc-iso10646-base:1.2 prg-localcount2-base3:1.2 prg-localcount2-base2:1.2 prg-localcount2-base1:1.2 prg-localcount2:1.2.0.12 prg-localcount2-base:1.2 pgoyette-localcount-20170426:1.2 bouyer-socketcan-base1:1.2 pgoyette-localcount-20170320:1.2 bouyer-socketcan:1.2.0.10 bouyer-socketcan-base:1.2 pgoyette-localcount-20170107:1.2 pgoyette-localcount-20161104:1.2 localcount-20160914:1.2 pgoyette-localcount-20160806:1.2 pgoyette-localcount-20160726:1.2 pgoyette-localcount:1.2.0.8 pgoyette-localcount-base:1.2 netbsd-5-2-3-RELEASE:1.1 netbsd-5-1-5-RELEASE:1.1 yamt-pagecache-base9:1.2 yamt-pagecache-tag8:1.2 tls-earlyentropy:1.2.0.4 tls-earlyentropy-base:1.2 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2 riastradh-drm2-base3:1.2 netbsd-5-2-2-RELEASE:1.1 netbsd-5-1-4-RELEASE:1.1 netbsd-5-2-1-RELEASE:1.1 netbsd-5-1-3-RELEASE:1.1 agc-symver:1.2.0.6 agc-symver-base:1.2 tls-maxphys-base:1.2 yamt-pagecache-base8:1.2 netbsd-5-2:1.1.0.6 yamt-pagecache-base7:1.2 netbsd-5-2-RELEASE:1.1 netbsd-5-2-RC1:1.1 yamt-pagecache-base6:1.2 yamt-pagecache-base5:1.2 yamt-pagecache-base4:1.2 netbsd-5-1-2-RELEASE:1.1 netbsd-5-1-1-RELEASE:1.1 yamt-pagecache-base3:1.2 yamt-pagecache-base2:1.2 yamt-pagecache:1.2.0.2 yamt-pagecache-base:1.2 cherry-xenmp:1.1.0.22 cherry-xenmp-base:1.1 bouyer-quota2-nbase:1.1 bouyer-quota2:1.1.0.20 bouyer-quota2-base:1.1 matt-mips64-premerge-20101231:1.1 matt-nb5-mips64-premerge-20101231:1.1 matt-nb5-pq3:1.1.0.18 matt-nb5-pq3-base:1.1 netbsd-5-1:1.1.0.16 netbsd-5-1-RELEASE:1.1 netbsd-5-1-RC4:1.1 matt-nb5-mips64-k15:1.1 netbsd-5-1-RC3:1.1 netbsd-5-1-RC2:1.1 netbsd-5-1-RC1:1.1 netbsd-5-0-2-RELEASE:1.1 matt-nb5-mips64-premerge-20091211:1.1 matt-premerge-20091211:1.1 matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.1 matt-nb4-mips64-k7-u2a-k9b:1.1 matt-nb5-mips64-u1-k1-k5:1.1 matt-nb5-mips64:1.1.0.14 netbsd-5-0-1-RELEASE:1.1 jym-xensuspend-nbase:1.1 netbsd-5-0:1.1.0.12 netbsd-5-0-RELEASE:1.1 netbsd-5-0-RC4:1.1 netbsd-5-0-RC3:1.1 netbsd-5-0-RC2:1.1 jym-xensuspend:1.1.0.10 jym-xensuspend-base:1.1 netbsd-5-0-RC1:1.1 netbsd-5:1.1.0.8 netbsd-5-base:1.1 matt-mips64-base2:1.1 wrstuden-revivesa-base-3:1.1 wrstuden-revivesa-base-2:1.1 wrstuden-revivesa-base-1:1.1 yamt-pf42-base4:1.1 yamt-pf42-base3:1.1 hpcarm-cleanup-nbase:1.1 yamt-pf42-baseX:1.1 yamt-pf42-base2:1.1 wrstuden-revivesa:1.1.0.4 wrstuden-revivesa-base:1.1 yamt-pf42:1.1.0.2 yamt-pf42-base:1.1; locks; strict; comment @# @; 1.2 date 2011.08.28.16.23.15; author elric; state dead; branches; next 1.1; 1.1 date 2008.03.22.08.37.04; author mlelstv; state Exp; branches; next ; desc @@ 1.2 log @Remove crypto/dist/heimdal and its associated build infrastructure as it has been replaced by crypto/external/bsd/heimdal. @ text @-- $Id: digest.asn1,v 1.1 2008/03/22 08:37:04 mlelstv Exp $ DIGEST DEFINITIONS ::= BEGIN IMPORTS EncryptedData, Principal FROM krb5; DigestTypes ::= BIT STRING { ntlm-v1(0), ntlm-v1-session(1), ntlm-v2(2), digest-md5(3), chap-md5(4), ms-chap-v2(5) } DigestInit ::= SEQUENCE { type UTF8String, -- http, sasl, chap, cram-md5 -- channel [0] SEQUENCE { cb-type UTF8String, cb-binding UTF8String } OPTIONAL, hostname [1] UTF8String OPTIONAL -- for chap/cram-md5 } DigestInitReply ::= SEQUENCE { nonce UTF8String, -- service nonce/challange opaque UTF8String, -- server state identifier [0] UTF8String OPTIONAL } DigestRequest ::= SEQUENCE { type UTF8String, -- http, sasl-md5, chap, cram-md5 -- digest UTF8String, -- http:md5/md5-sess sasl:clear/int/conf -- username UTF8String, -- username user used responseData UTF8String, -- client response authid [0] UTF8String OPTIONAL, authentication-user [1] Principal OPTIONAL, -- principal to get key from realm [2] UTF8String OPTIONAL, method [3] UTF8String OPTIONAL, uri [4] UTF8String OPTIONAL, serverNonce UTF8String, -- same as "DigestInitReply.nonce" clientNonce [5] UTF8String OPTIONAL, nonceCount [6] UTF8String OPTIONAL, qop [7] UTF8String OPTIONAL, identifier [8] UTF8String OPTIONAL, hostname [9] UTF8String OPTIONAL, opaque UTF8String -- same as "DigestInitReply.opaque" } -- opaque = hex(cksum(type|serverNonce|identifier|hostname,digest-key)) -- serverNonce = hex(time[4bytes]random[12bytes])(-cbType:cbBinding) DigestError ::= SEQUENCE { reason UTF8String, code INTEGER (-2147483648..2147483647) } DigestResponse ::= SEQUENCE { success BOOLEAN, rsp [0] UTF8String OPTIONAL, tickets [1] SEQUENCE OF OCTET STRING OPTIONAL, channel [2] SEQUENCE { cb-type UTF8String, cb-binding UTF8String } OPTIONAL, session-key [3] OCTET STRING OPTIONAL } NTLMInit ::= SEQUENCE { flags [0] INTEGER (0..4294967295), hostname [1] UTF8String OPTIONAL, domain [1] UTF8String OPTIONAL } NTLMInitReply ::= SEQUENCE { flags [0] INTEGER (0..4294967295), opaque [1] OCTET STRING, targetname [2] UTF8String, challange [3] OCTET STRING, targetinfo [4] OCTET STRING OPTIONAL } NTLMRequest ::= SEQUENCE { flags [0] INTEGER (0..4294967295), opaque [1] OCTET STRING, username [2] UTF8String, targetname [3] UTF8String, targetinfo [4] OCTET STRING OPTIONAL, lm [5] OCTET STRING, ntlm [6] OCTET STRING, sessionkey [7] OCTET STRING OPTIONAL } NTLMResponse ::= SEQUENCE { success [0] BOOLEAN, flags [1] INTEGER (0..4294967295), sessionkey [2] OCTET STRING OPTIONAL, tickets [3] SEQUENCE OF OCTET STRING OPTIONAL } DigestReqInner ::= CHOICE { init [0] DigestInit, digestRequest [1] DigestRequest, ntlmInit [2] NTLMInit, ntlmRequest [3] NTLMRequest, supportedMechs [4] NULL } DigestREQ ::= [APPLICATION 128] SEQUENCE { apReq [0] OCTET STRING, innerReq [1] EncryptedData } DigestRepInner ::= CHOICE { error [0] DigestError, initReply [1] DigestInitReply, response [2] DigestResponse, ntlmInitReply [3] NTLMInitReply, ntlmResponse [4] NTLMResponse, supportedMechs [5] DigestTypes, ... } DigestREP ::= [APPLICATION 129] SEQUENCE { apRep [0] OCTET STRING, innerRep [1] EncryptedData } -- HTTP -- md5 -- A1 = unq(username-value) ":" unq(realm-value) ":" passwd -- md5-sess -- A1 = HEX(H(unq(username-value) ":" unq(realm-value) ":" passwd ) ":" unq(nonce-value) ":" unq(cnonce-value)) -- qop == auth -- A2 = Method ":" digest-uri-value -- qop == auth-int -- A2 = Method ":" digest-uri-value ":" H(entity-body) -- request-digest = HEX(KD(HEX(H(A1)), -- unq(nonce-value) ":" nc-value ":" unq(cnonce-value) ":" unq(qop-value) ":" HEX(H(A2)))) -- no "qop" -- request-digest = HEX(KD(HEX(H(A1)), unq(nonce-value) ":" HEX(H(A2)))) -- SASL: -- SS = H( { unq(username-value), ":", unq(realm-value), ":", password } ) -- A1 = { SS, ":", unq(nonce-value), ":", unq(cnonce-value) } -- A1 = { SS, ":", unq(nonce-value), ":", unq(cnonce-value), ":", unq(authzid-value) } -- A2 = "AUTHENTICATE:", ":", digest-uri-value -- qop == auth-int,auth-conf -- A2 = "AUTHENTICATE:", ":", digest-uri-value, ":00000000000000000000000000000000" -- response-value = HEX( KD ( HEX(H(A1)), -- { unq(nonce-value), ":" nc-value, ":", -- unq(cnonce-value), ":", qop-value, ":", -- HEX(H(A2)) })) END @ 1.1 log @Import Heimdal-1.1 @ text @d1 1 a1 1 -- $Id: digest.asn1 22152 2007-12-04 19:59:18Z lha $ @