hotp.go
func Unmarshal(in []byte) (otp *HOTP, err error) {
	var asnHOTP struct {
		Key     []byte
		Counter *big.Int
		Digits  int
	}
	_, err = asn1.Unmarshal(in, &asnHOTP)
	if err != nil {
		return
	}

	otp = &HOTP{
		Key:    asnHOTP.Key[:],
		Digits: asnHOTP.Digits,
	}
	otp.setCounter(asnHOTP.Counter.Uint64())
	return
}
func Unmarshal(in []byte) (otp *HOTP, err error) {
	var asnHOTP struct {
		Key     []byte
		Counter *big.Int
		Digits  int
	}
	_, err = asn1.Unmarshal(in, &asnHOTP)
	if err != nil {
		return
	}

	otp = &HOTP{
		Key:    asnHOTP.Key[:],
		Digits: asnHOTP.Digits,
	}
	otp.setCounter(asnHOTP.Counter.Uint64())
	return
}
func Unmarshal ( in [ ] byte ) ( otp * HOTP , err error ) { var asnHOTP struct { Key [ ] byte Counter * big . Int Digits int } _ , err = asn1 . Unmarshal ( in , & asnHOTP ) if err != nil { return } otp = & HOTP { Key : asnHOTP . Key [ : ] , Digits : asnHOTP . Digits , } otp . setCounter ( asnHOTP . Counter . Uint64 ( ) ) return }
// Unmarshal parses a DER-encoded serialised HOTP key value.
Unmarshal parses a DER - encoded serialised HOTP key value .