class HMAC

public class HMAC <: Digest {
    public init(key: Array<Byte>, digest: () -> Digest)
    public init(key: Array<Byte>, algorithm: HashType)
}

功能:提供 HMAC 算法的实现。目前支持的摘要算法包括 MD5、SHA1、SHA224、SHA256、SHA384、SHA512、SM3。

父类型:

prop blockSize

public prop blockSize: Int64

功能:HMAC 所选 Hash 算法信息块长度,单位字节。

类型:Int64

prop size

public prop size: Int64

功能:HMAC 所选 Hash 算法的摘要信息长度,单位字节。

类型:Int64

init(Array<Byte>, () -> Digest)

public init(key: Array<Byte>, digest: () -> Digest)

功能:构造函数,创建 HMAC 对象。

参数:

  • key: Array<Byte> - 密钥,建议该参数不小于所选Hash算法摘要的长度。
  • digest: () -> Digest- hash 算法。

异常:

init(Array<Byte>, HashType)

public init(key: Array<Byte>, algorithm: HashType)

功能:构造函数,创建 HMAC 对象。

参数:

  • key: Array<Byte> - 密钥,建议该参数不小于所选Hash算法摘要的长度。
  • algorithm: HashType - hash 算法。

异常:

func equal(Array<Byte>, Array<Byte>)

public static func equal(mac1: Array<Byte>, mac2: Array<Byte>): Bool

功能:比较两个信息摘要是否相等,且不泄露比较时间,即比较不采用传统短路原则,从而防止 timing attack 类型的攻击。

参数:

  • mac1: Array<Byte> - 需要比较的信息摘要序列。
  • mac2: Array<Byte> - 需要比较的信息摘要序列。

返回值:

  • Bool - 信息摘要是否相同, true 相同, false 不相同。

func finish()

public func finish(): Array<Byte>

功能:返回生成的信息摘要值,注意调用 finish 后不可以再进行摘要计算,如重新计算需要 reset 重置上下文。

返回值:

  • Array<Byte> - 生成的信息摘要字节序列。

异常:

  • CryptoException - 未重置上下文再次调用 finish 进行摘要计算,抛此异常。

func reset()

public func reset(): Unit

功能:重置 HMAC 对象到初始状态,清理 HMAC 上下文。

异常:

func write(Array<Byte>)

public func write(buffer: Array<Byte>): Unit 

功能:使用给定的 buffer 更新 HMAC 对象,在调用 finish 前可以多次更新。

参数:

  • buffer: Array<Byte> - 需要追加的字节序列。

异常:

  • CryptoException - 当 buffer 为空、finish 已经调用生成信息摘要场景,抛此异常。

class MD5

public class MD5 <: Digest {
    public init()
}

功能:提供 MD5 算法的实现接口。

父类型:

prop blockSize

public prop blockSize: Int64

功能:MD5 信息块长度,单位字节。

类型:Int64

prop size

public prop size: Int64

功能:MD5 摘要信息长度,单位字节。

类型:Int64

init()

public init()

功能:无参构造函数,创建 MD5 对象。

func finish()

public func finish(): Array<Byte>

功能:返回生成的 MD5 值,注意调用 finish 后 MD5 上下文会发生改变,finish 后不可以再进行摘要计算,如重新计算需要 reset 重置上下文。

返回值:

异常:

  • CryptoException - 未重置上下文再次调用 finish 进行摘要计算,抛此异常。

func reset()

public func reset(): Unit

功能:重置 MD5 对象到初始状态,清理 MD5 上下文。

func write(Array<Byte>)

public func write(buffer: Array<Byte>): Unit

功能:使用给定的 buffer 更新 MD5 对象,在调用 finish 前可以多次更新。

参数:

  • buffer: Array<Byte> - 输入字节序列。

异常:

  • CryptoException - 已经调用 finish 进行摘要计算后未重置上下文,抛此异常。

class SHA1

public class SHA1 <: Digest {
    public init()
}

功能:提供 SHA1 算法的实现接口。

父类型:

prop blockSize

public prop blockSize: Int64

功能:SHA1 信息块长度,单位字节。

类型:Int64

prop size

public prop size: Int64

功能:SHA1 摘要信息长度,单位字节。

类型:Int64

init()

public init()

功能:无参构造函数,创建 SHA1 对象。

func finish()

public func finish(): Array<Byte>

功能:返回生成的 SHA1 值,注意调用 finish 后 SHA1 上下文会发生改变,finish 后不可以再进行摘要计算,如重新计算需要 reset 重置上下文。

返回值:

异常:

  • CryptoException - 未重置上下文再次调用 finish 进行摘要计算,抛此异常。

func reset()

public func reset(): Unit

功能:重置 SHA1 对象到初始状态,清理 SHA1 上下文。

func write(Array<Byte>)

public func write(buffer: Array<Byte>): Unit

功能:使用给定的 buffer 更新 SHA1 对象,在调用 finish 前可以多次更新。

参数:

  • buffer: Array<Byte> - 输入字节序列。

异常:

  • CryptoException - 已经调用 finish 进行摘要计算后未重置上下文,抛此异常。

class SHA224

public class SHA224 <: Digest {
    public init()
}

功能:提供 SHA224 算法的实现接口。

父类型:

prop blockSize

public prop blockSize: Int64

功能:SHA224 信息块长度,单位字节。

类型:Int64

prop size

public prop size: Int64

功能:SHA224 摘要信息长度,单位字节。

类型:Int64

init()

public init()

功能:无参构造函数,创建 SHA224 对象。

func finish()

public func finish(): Array<Byte>

功能:返回生成的 SHA224 值,注意调用 finish 后 SHA224 上下文会发生改变,finish 后不可以再进行摘要计算,如重新计算需要 reset 重置上下文。

返回值:

异常:

  • CryptoException - 未重置上下文再次调用 finish 进行摘要计算,抛此异常。

func reset()

public func reset(): Unit

功能:重置 SHA224 对象到初始状态,清理 SHA224 上下文。

func write(Array<Byte>)

public func write(buffer: Array<Byte>): Unit

功能:使用给定的 buffer 更新 SHA224 对象,在调用 finish 前可以多次更新。

参数:

  • buffer: Array<Byte> - 输入字节序列。

异常:

  • CryptoException - 已经调用 finish 进行摘要计算后未重置上下文,抛此异常。

class SHA256

public class SHA256 <: Digest {
    public init()
}

功能:提供 SHA256 算法的实现接口。

父类型:

prop blockSize

public prop blockSize: Int64

功能:SHA256 信息块长度,单位字节。

类型:Int64

prop size

public prop size: Int64

功能:SHA256 摘要信息长度,单位字节。

类型:Int64

init()

public init()

功能:无参构造函数,创建 SHA256 对象。

func finish()

public func finish(): Array<Byte>

功能:返回生成的 SHA256 值,注意调用 finish 后 SHA256 上下文会发生改变,finish 后不可以再进行摘要计算,如重新计算需要 reset 重置上下文。

返回值:

异常:

  • CryptoException - 未重置上下文再次调用 finish 进行摘要计算,抛此异常。

func reset()

public func reset(): Unit

功能:重置 SHA256 对象到初始状态,清理 SHA256 上下文。

func write(Array<Byte>)

public func write(buffer: Array<Byte>): Unit

功能:使用给定的 buffer 更新 SHA256 对象,在调用 finish 前可以多次更新。

参数:

  • buffer: Array<Byte> - 输入字节序列。

异常:

  • CryptoException - 已经调用 finish 进行摘要计算后未重置上下文,抛此异常。

class SHA384

public class SHA384 <: Digest {
    public init()
}

功能:提供 SHA384 算法的实现接口。

父类型:

prop blockSize

public prop blockSize: Int64

功能:SHA384 信息块长度,单位字节。

类型:Int64

prop size

public prop size: Int64

功能:SHA384 摘要信息长度,单位字节。

类型:Int64

init()

public init()

功能:无参构造函数,创建 SHA384 对象。

func finish()

public func finish(): Array<Byte>

功能:返回生成的 SHA384 值,注意调用 finish 后 SHA384 上下文会发生改变,finish 后不可以再进行摘要计算,如重新计算需要 reset 重置上下文。

返回值:

异常:

  • CryptoException - 未重置上下文再次调用 finish 进行摘要计算,抛此异常。

func reset()

public func reset(): Unit

功能:重置 SHA384 对象到初始状态,清理 SHA384 上下文。

func write(Array<Byte>)

public func write(buffer: Array<Byte>): Unit

功能:使用给定的 buffer 更新 SHA384 对象,在调用 finish 前可以多次更新。

参数:

  • buffer: Array<Byte> - 输入字节序列。

异常:

  • CryptoException - 已经调用 finish 进行摘要计算后未重置上下文,抛此异常。

class SHA512

public class SHA512 <: Digest {
    public init()
}

功能:提供 SHA512 算法的实现接口。

父类型:

prop blockSize

public prop blockSize: Int64

功能:SHA512 信息块长度,单位字节。

类型:Int64

prop size

public prop size: Int64

功能:SHA512 摘要信息长度,单位字节。

类型:Int64

init()

public init()

功能:无参构造函数,创建 SHA512 对象。

func finish()

public func finish(): Array<Byte>

功能:返回生成的 SHA512 值,注意调用 finish 后 SHA512 上下文会发生改变,finish 后不可以再进行摘要计算,如重新计算需要 reset 重置上下文。

返回值:

异常:

  • CryptoException - 未重置上下文再次调用 finish 进行摘要计算,抛此异常。

func reset()

public func reset(): Unit

功能:重置 SHA512 对象到初始状态,清理 SHA512 上下文。

func write(Array<Byte>)

public func write(buffer: Array<Byte>): Unit

功能:使用给定的 buffer 更新 SHA512 对象,在调用 finish 前可以多次更新。

参数:

  • buffer: Array<Byte> - 输入字节序列。

异常:

  • CryptoException - 已经调用 finish 进行摘要计算后未重置上下文,抛此异常。

class SM3

public class SM3 <: Digest {
    public init()
}

功能:提供 SM3 算法的实现接口。

父类型:

prop blockSize

public prop blockSize: Int64

功能:SM3 信息块长度,单位字节。

类型:Int64

prop size

public prop size: Int64

功能:SM3 摘要信息长度,单位字节。

类型:Int64

init()

public init()

功能:无参构造函数,创建 SM3 对象。

func finish()

public func finish(): Array<Byte>

功能:返回生成的 SM3 值,注意调用 finish 后 SM3 上下文会发生改变,finish 后不可以再进行摘要计算,如重新计算需要 reset 重置上下文。

返回值:

异常:

  • CryptoException - 未重置上下文再次调用 finish 进行摘要计算,抛此异常。

func reset()

public func reset(): Unit

功能:重置 SM3 对象到初始状态,清理 SM3 上下文。

func write(Array<Byte>)

public func write(buffer: Array<Byte>): Unit

功能:使用给定的 buffer 更新 SM3 对象,在调用 finish 前可以多次更新。

参数:

  • buffer: Array<Byte> - 输入字节序列。

异常:

  • CryptoException - 已经调用 finish 进行摘要计算后未重置上下文,抛此异常。