digest package provides header generator for digest authentication.

§ Quick start

    go get sogvin.com/digest

§ Example

The Auth object can be reused for subsequent requests.

    req, _ := http.NewRequest("GET", "/", nil)
    resp, _ := http.DefaultClient.Do(req)
    if resp.StatusCode == http.StatusUnauthorized {
        auth := NewAuth("john.doe", "secret")
        err := auth.Parse(resp.Header.Get("www-authenticate"))
        if err != nil {
            // cannot authenticate using this package
        }
        auth.Authorize(req)
    }
    resp, _ := http.DefaultClient.Do(req)

    // and for the next request just authorize it before sending
    auth.Authorize(req2)