本文整理汇总了Golang中hash.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了New函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: newFinishedHash

func newFinishedHash(version uint16, cipherSuite *cipherSuite) finishedHash {
    var buffer []byte
    if version == VersionSSL30 || version >= VersionTLS12 {
        buffer = []byte{}
    }

    prf, hash := prfAndHashForVersion(version, cipherSuite)
    if hash != 0 {
        return finishedHash{hash.New(), hash.New(), nil, nil, buffer, version, prf}
    }

    return finishedHash{sha1.New(), sha1.New(), md5.New(), md5.New(), buffer, version, prf}
}

开发者ID:RajibTheKing,项目名称:gcc,代码行数:13,代码来源:prf.go

示例2: PayloadSign

// Sign generates a sign based on the Algorithm instance variable.
// This fulfills the `Signer` interface
func (s RsaSign) PayloadSign(payload []byte) ([]byte, error) {
    hash, err := rsaHashForAlg(s.SignatureAlgorithm())
    if err != nil {
        return nil, ErrUnsupportedAlgorithm
    }

    privkey := s.PrivateKey
    if privkey == nil {
        return nil, ErrMissingPrivateKey
    }

    h := hash.New()
    h.Write(payload)

    switch s.SignatureAlgorithm() {
    case jwa.RS256, jwa.RS384, jwa.RS512:
        return rsa.SignPKCS1v15(rand.Reader, privkey, hash, h.Sum(nil))
    case jwa.PS256, jwa.PS384, jwa.PS512:
        return rsa.SignPSS(rand.Reader, privkey, hash, h.Sum(nil), &rsa.PSSOptions{
            SaltLength: rsa.PSSSaltLengthAuto,
        })
    default:
        return nil, ErrUnsupportedAlgorithm
    }
}

开发者ID:nabeken,项目名称:go-jwx,代码行数:27,代码来源:signer.go

示例3: Parse

// Parse reads a binary specification for a string-to-key transformation from r
// and returns a function which performs that transform.
func Parse(r io.Reader) (f func(out, in []byte), err error) {
    var buf [9]byte

    _, err = io.ReadFull(r, buf[:2])
    if err != nil {
        return
    }

    // GNU Extensions; handle them before we try to look for a hash, which won't
    // be needed in most cases anyway.
    if buf[0] == 101 {
        return parseGNUExtensions(r)
    }

    hash, ok := HashIdToHash(buf[1])
    if !ok {
        return nil, errors.UnsupportedError("hash for S2K function: " + strconv.Itoa(int(buf[1])))
    }
    if !hash.Available() {
        return nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hash)))
    }
    h := hash.New()

    switch buf[0] {
    case 0:
        f := func(out, in []byte) {
            Simple(out, h, in)
        }
        return f, nil
    case 1:
        _, err = io.ReadFull(r, buf[:8])
        if err != nil {
            return
        }
        f := func(out, in []byte) {
            Salted(out, h, in, buf[:8])
        }
        return f, nil
    case 3:
        _, err = io.ReadFull(r, buf[:9])
        if err != nil {
            return
        }
        count := decodeCount(buf[8])
        f := func(out, in []byte) {
            Iterated(out, h, in, buf[:8], count)
        }
        return f, nil
    }

    return nil, errors.UnsupportedError("S2K function")
}

开发者ID:quixoten,项目名称:vault,代码行数:54,代码来源:s2k.go

示例4: Parse

// Parse reads a binary specification for a string-to-key transformation from r
// and returns a function which performs that transform.
func Parse(r io.Reader) (f func(out, in []byte), err error) {
    var buf [9]byte

    _, err = io.ReadFull(r, buf[:2])
    if err != nil {
        return
    }

    hash, ok := HashIdToHash(buf[1])
    if !ok {
        return nil, errors.UnsupportedError("hash for S2K function: " + strconv.Itoa(int(buf[1])))
    }
    if !hash.Available() {
        return nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hash)))
    }
    h := hash.New()

    switch buf[0] {
    case 0:
        f := func(out, in []byte) {
            Simple(out, h, in)
        }
        return f, nil
    case 1:
        _, err = io.ReadFull(r, buf[:8])
        if err != nil {
            return
        }
        f := func(out, in []byte) {
            Salted(out, h, in, buf[:8])
        }
        return f, nil
    case 3:
        _, err = io.ReadFull(r, buf[:9])
        if err != nil {
            return
        }
        count := decodeCount(buf[8])
        f := func(out, in []byte) {
            Iterated(out, h, in, buf[:8], count)
        }
        return f, nil
    }

    return nil, errors.UnsupportedError("S2K function")
}

开发者ID:postfix,项目名称:name_pending,代码行数:48,代码来源:s2k.go

示例5: Parse

// Parse reads a binary specification for a string-to-key transformation from r
// and returns a function which performs that transform.
func Parse(r io.Reader) (f func(out, in []byte), err os.Error) {
    var buf [9]byte

    _, err = io.ReadFull(r, buf[:2])
    if err != nil {
        return
    }

    hash, ok := HashIdToHash(buf[1])
    if !ok {
        return nil, error.UnsupportedError("hash for S2K function: " + strconv.Itoa(int(buf[1])))
    }
    h := hash.New()
    if h == nil {
        return nil, error.UnsupportedError("hash not available: " + strconv.Itoa(int(hash)))
    }

    switch buf[0] {
    case 1:
        f := func(out, in []byte) {
            Simple(out, h, in)
        }
        return f, nil
    case 2:
        _, err := io.ReadFull(r, buf[:8])
        if err != nil {
            return
        }
        f := func(out, in []byte) {
            Salted(out, h, in, buf[:8])
        }
        return f, nil
    case 3:
        _, err := io.ReadFull(r, buf[:9])
        if err != nil {
            return
        }
        count := (16 + int(buf[8]&15)) << (uint32(buf[8]>>4) + 6)
        f := func(out, in []byte) {
            Iterated(out, h, in, buf[:8], count)
        }
        return f, nil
    }

    return nil, error.UnsupportedError("S2K function")
}

开发者ID:go-nosql,项目名称:golang,代码行数:48,代码来源:s2k.go

最后编辑: kuteng  文档更新时间: 2021-08-23 19:14   作者:kuteng