当前位置: 首页>>代码示例>>Golang>>正文


Golang liftca.Store类代码示例

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


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

示例1: GetCA

func GetCA(store *liftca.Store, r *ht.Request) *ht.Answer {
	ca, answer := ObtainCA(store, r)
	if answer != nil {
		return answer
	}
	auth, _ := store.Get(ca.SerialNumber())
	return ht.JSONDocument(*JSONCAResponseFromParcel(auth))
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:8,代码来源:ca_handlers.go

示例2: DeleteCRL

func DeleteCRL(store *liftca.Store, r *ht.Request) *ht.Answer {
	_, cert, answer := ObtainCAAndCert(store, r)
	if answer != nil {
		return answer
	}
	store.SetRevoked(cert.SerialNumber(), false)
	return ht.NoContent()
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:8,代码来源:ca_handlers.go

示例3: GetCAs

func GetCAs(store *liftca.Store, r *ht.Request) *ht.Answer {
	response := make([]JSONCAResponse, 0)
	for _, s := range store.GetCAs() {
		auth, _ := store.Get(s)
		if auth.Visible {
			response = append(response, *JSONCAResponseFromParcel(auth))
		}
	}
	return ht.JSONDocument(response)
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:10,代码来源:ca_handlers.go

示例4: GetCACRLPEMTXT

func GetCACRLPEMTXT(store *liftca.Store, r *ht.Request) *ht.Answer {
	ca, answer := ObtainCA(store, r)
	if answer != nil {
		return answer
	}
	revoked := store.GetRevokedChildren(ca.SerialNumber())
	crl, err := ca.PEMCRL(revoked)
	if err != nil {
		return ht.Failure(err)
	}
	return ht.Read("text/plain", crl)
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:12,代码来源:ca_handlers.go

示例5: GetCACRLCER

func GetCACRLCER(store *liftca.Store, r *ht.Request) *ht.Answer {
	ca, answer := ObtainCA(store, r)
	if answer != nil {
		return answer
	}
	revoked := store.GetRevokedChildren(ca.SerialNumber())
	crl, err := ca.DERCRL(revoked)
	if err != nil {
		return ht.Failure(err)
	}
	return ht.Read("application/pkix-crl", crl)
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:12,代码来源:ca_handlers.go

示例6: GetCerts

func GetCerts(store *liftca.Store, r *ht.Request) *ht.Answer {
	ca, answer := ObtainCA(store, r)
	if answer != nil {
		return answer
	}
	children, _ := store.GetChildren(ca.SerialNumber())
	response := make([]JSONCertResponse, 0)
	for _, s := range children {
		cert, _ := store.Get(s)
		response = append(response, *JSONCertResponseFromParcel(ca.SerialNumber(), cert))
	}
	return ht.JSONDocument(response)
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:13,代码来源:cert_handlers.go

示例7: GetCRL

func GetCRL(store *liftca.Store, r *ht.Request) *ht.Answer {
	ca, answer := ObtainCA(store, r)
	if answer != nil {
		return answer
	}
	revoked := store.GetRevokedChildren(ca.SerialNumber())
	output := make([]string, len(revoked))
	for i, e := range revoked {
		output[i] = strconv.FormatInt(e, 10)
	}

	return ht.JSONDocument(&JSONCRLResponse{
		Self:          CACRLURL(ca.SerialNumber()),
		SerialNumbers: output,
	})
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:16,代码来源:ca_handlers.go

示例8: ObtainCA

func ObtainCA(store *liftca.Store, r *ht.Request) (*liftca.Parcel, *ht.Answer) {
	caID, err := r.VarInt64("ca_id")
	if err != nil {
		return nil, ht.Failure(err)
	}
	auth, found := store.Get(caID)
	if !found {
		return nil, ht.NotFound()
	}

	if _, found := store.GetParent(caID); found {
		return nil, ht.NotFound()
	}

	return auth, nil
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:16,代码来源:support.go

示例9: PostCert

func PostCert(store *liftca.Store, r *ht.Request) *ht.Answer {
	ca, answer := ObtainCA(store, r)
	if answer != nil {
		return answer
	}
	certReq := &JSONCertRequest{}
	err := r.BodyAsJSON(certReq)
	if err != nil {
		return ht.Failure(err)
	}
	id, err := store.Add(true, ca.SerialNumber(), certReq.Host)
	if err != nil {
		return ht.Failure(err)
	}
	return ht.RedirectTo(CertUrl(ca.SerialNumber(), id))
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:16,代码来源:cert_handlers.go

示例10: PostCRL

func PostCRL(store *liftca.Store, r *ht.Request) *ht.Answer {
	req := &JSONCRLRequest{}
	r.BodyAsJSON(req)
	certID, err := strconv.ParseInt(req.SerialNumber, 10, 64)
	if err != nil {
		return ht.Failure(err)
	}
	ca, answer := ObtainCA(store, r)
	if answer != nil {
		return answer
	}
	if p, _ := store.GetParent(certID); p != ca.SerialNumber() {
		return ht.Failure(fmt.Errorf("certificate %v does not belong to CA %v", certID, ca.SerialNumber()))
	}
	store.SetRevoked(certID, true)
	return ht.RedirectTo(CACRLURL(ca.SerialNumber()))
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:17,代码来源:ca_handlers.go

示例11: PostCA

func PostCA(store *liftca.Store, r *ht.Request) *ht.Answer {
	caReq := &JSONCARequest{}
	err := r.BodyAsJSON(caReq)
	if err != nil {
		return ht.Failure(err)
	}
	var id int64
	if caReq.PEMCertificate != "" || caReq.PEMKey != "" || caReq.PEMKeyPassword != "" {
		id, err = store.AddExistingCA(caReq.Visible, []byte(caReq.PEMCertificate), []byte(caReq.PEMKey), []byte(caReq.PEMKeyPassword))
	} else {
		id, err = store.AddCA(caReq.Visible, caReq.Name)
	}

	if err != nil {
		return ht.Failure(err)
	}
	return ht.RedirectTo(CAUrl(id))
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:18,代码来源:ca_handlers.go

示例12: ObtainCAAndCert

func ObtainCAAndCert(store *liftca.Store, r *ht.Request) (*liftca.Parcel, *liftca.Parcel, *ht.Answer) {
	ca, answer := ObtainCA(store, r)
	if answer != nil {
		return nil, nil, answer
	}

	certID, err := r.VarInt64("cert_id")
	if err != nil {
		return nil, nil, ht.Failure(err)
	}
	cert, found := store.Get(certID)
	if !found {
		return nil, nil, ht.NotFound()
	}
	parent, _ := store.GetParent(certID)
	if parent != ca.SerialNumber() {
		return nil, nil, ht.Failure(fmt.Errorf("certificate %v does not belong to CA %v", certID, ca.SerialNumber()))
	}

	return ca, cert, nil
}
开发者ID:jeanfric,项目名称:liftCA,代码行数:21,代码来源:support.go


注:本文中的github.com/jeanfric/liftca.Store类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。