That should work.

No need for .reset though as the initially constructed MessageDigest is already 
in its initial state.

Be careful with .digest as it implicitly resets the MessageDigest, and calling 
it a second time gives you the digest of the initial state which is not what 
you want.

(all that "incidental complexity" is why I started to write that functional 
interface ;-) )

-FS.


On Mar 4, 2013, at 11:32 AM, Aaron Cohen <aa...@assonance.org> wrote:

> Ah darn, thanks for the catch. The following is uglier but should work I 
> guess. :\
> 
> digest (.digest
>                (doto (java.security.MessageDigest/getInstance "sha1")
>                      .reset
>                      (.update nonce-bytes)
>                      (.update created-bytes)
>                      (.update secret-bytes)))
> 
> 
> On Mon, Mar 4, 2013 at 2:25 PM, Frank Siebenlist <frank.siebenl...@gmail.com> 
> wrote:
> > digest (-> (java.security.MessageDigest/getInstance "sha1")
> >                     .reset
> >                     (.update nonce-bytes)
> >                     (.update create-bytes)
> >                     (.update secret-bytes)
> >                     .digest)
> 
> 
> There may be an issue with this snippet of code as ".update" does not return 
> anything… i.e. nil.
> 
> -FS.
> 
> 
> 
> On Mar 4, 2013, at 11:06 AM, larry google groups <lawrencecloj...@gmail.com> 
> wrote:
> 
> >>
> >> ;; Should "UsernameToken Username" really be unquoted in the following 
> >> line?
> >> ;; All the other variable names are quoted
> >
> > Apparently, yes. The developer at Omniture reviewed it and said my
> > only problem was the way the passwordDigest was created.
> >
> >
> >
> > On Mar 4, 2:02 pm, Aaron Cohen <aa...@assonance.org> wrote:
> >> I think you should try to avoid the string concatenation games. I'm not
> >> sure what your current code is, but I suspect you're still ending up with
> >> array toString's slipping in.
> >>
> >> How about the following?
> >>
> >> On Mon, Mar 4, 2013 at 1:31 PM, larry google groups <
> >>
> >> lawrencecloj...@gmail.com> wrote:
> >>> So, right now I am using this code:
> >>
> >>>  (let [username (get-in @um/interactions [:omniture-api-
> >>> credentials :username])
> >>>   secret (get-in @um/interactions [:omniture-api-credentials :shared-
> >>> secret])
> >>>   nonce (DigestUtils/md5Hex (str (math/round (* (rand 1 ) 1000000))))
> >>>   nonce-encoded-base64 (Base64/encodeBase64 (.getBytes nonce))
> >>>   date-formatter (new SimpleDateFormat "yyyy-MM-dd'T'HH:mm:ss")
> >>>   formatter gmt-timezone)
> >>>   created (.format date-formatter (new Date))
> >>
> >>    nonce-bytes (.getBytes nonce)
> >>    created-bytes (.getBytes created)
> >>    secret-bytes (.getBytes secret)
> >>    digest (-> (java.security.MessageDigest/getInstance "sha1")
> >>                     .reset
> >>                     (.update nonce-bytes)
> >>                     (.update create-bytes)
> >>                     (.update secret-bytes)
> >>                     .digest)
> >>     digest-base64 (Base64/encodeBase64 digest)
> >>
> >> ;; Should "UsernameToken Username" really be unquoted in the following 
> >> line?
> >> ;; All the other variable names are quoted
> >>     header (apply str " UsernameToken Username=\""  username
> >>
> >> ;; You may want digest-base64 here?
> >>                               "\"PasswordDigest=\"" digest
> >>
> >>                               "\" Nonce=\"" nonce-encoded-base64
> >>                               "\"Created=\"" created "\"")]
> >>              header)
> >
> > --
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with 
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> > ---
> > You received this message because you are subscribed to the Google Groups 
> > "Clojure" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to clojure+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/groups/opt_out.
> >
> >
> 
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
> 
> 
> 

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to