本文整理汇总了Golang中github.com/hlandau/acme/fdb.Collection类的典型用法代码示例。如果您正苦于以下问题:Golang Collection类的具体用法?Golang Collection怎么用?Golang Collection使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Collection类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: validateKey
func (s *Store) validateKey(keyID string, kc *fdb.Collection) error {
f, err := kc.Open("privkey")
if err != nil {
return err
}
defer f.Close()
b, err := ioutil.ReadAll(f)
if err != nil {
return err
}
pk, err := acmeutils.LoadPrivateKey(b)
if err != nil {
return err
}
actualKeyID, err := determineKeyIDFromKey(pk)
if err != nil {
return err
}
if actualKeyID != keyID {
return fmt.Errorf("key ID mismatch: %#v != %#v", keyID, actualKeyID)
}
k := &Key{
ID: actualKeyID,
}
s.keys[actualKeyID] = k
return nil
}
开发者ID:meyskens,项目名称:acme,代码行数:35,代码来源:storage.go
示例2: validateAuthorization
func (s *fdbStore) validateAuthorization(account *Account, authName string, c *fdb.Collection) error {
ss, err := fdb.String(c.Open("expiry"))
if err != nil {
return err
}
expiry, err := time.Parse(time.RFC3339, strings.TrimSpace(ss))
if err != nil {
return err
}
azURL, _ := fdb.String(c.Open("url"))
if !acmeapi.ValidURL(azURL) {
azURL = ""
}
az := &Authorization{
Name: authName,
URL: strings.TrimSpace(azURL),
Expires: expiry,
}
account.Authorizations[authName] = az
return nil
}
开发者ID:falkbizz,项目名称:acme,代码行数:25,代码来源:storage-fdb.go
示例3: saveKeyUnderID
// Save a private key inside a key ID collection under the given collection.
func (s *fdbStore) saveKeyUnderID(c *fdb.Collection, privateKey crypto.PrivateKey) (keyID string, err error) {
keyID, err = determineKeyIDFromKey(privateKey)
if err != nil {
return
}
err = s.saveKey(c.Collection(keyID), privateKey)
return
}
开发者ID:falkbizz,项目名称:acme,代码行数:10,代码来源:storage-fdb.go
示例4: saveKey
// Saves a key as a file named "privkey" inside the given collection.
func (s *fdbStore) saveKey(c *fdb.Collection, privateKey crypto.PrivateKey) error {
f, err := c.Create("privkey")
if err != nil {
return err
}
defer f.CloseAbort()
err = acmeutils.SavePrivateKey(f, privateKey)
if err != nil {
return err
}
return f.Close()
}
开发者ID:falkbizz,项目名称:acme,代码行数:15,代码来源:storage-fdb.go
示例5: validateTargetInner
func (s *Store) validateTargetInner(desiredKey string, c *fdb.Collection, loadingDefault bool) (*Target, error) {
b, err := fdb.Bytes(c.Open(desiredKey))
if err != nil {
return nil, err
}
var tgt *Target
if loadingDefault {
tgt = &Target{}
} else {
tgt = s.defaultTarget.CopyGeneric()
}
err = yaml.Unmarshal(b, tgt)
if err != nil {
return nil, err
}
if len(tgt.Satisfy.Names) == 0 {
if len(tgt.LegacyNames) > 0 {
tgt.Satisfy.Names = tgt.LegacyNames
} else {
tgt.Satisfy.Names = []string{desiredKey}
}
}
if tgt.Request.Provider == "" {
tgt.Request.Provider = tgt.LegacyProvider
}
err = normalizeNames(tgt.Satisfy.Names)
if err != nil {
return nil, fmt.Errorf("invalid target: %s: %v", desiredKey, err)
}
if len(tgt.Request.Names) == 0 {
tgt.Request.Names = tgt.Satisfy.Names
tgt.Request.implicitNames = true
}
tgt.Request.Account, err = s.getAccountByProviderString(tgt.Request.Provider)
if err != nil {
return nil, err
}
// TODO: tgt.Priority
return tgt, nil
}
开发者ID:madalinignisca,项目名称:acme,代码行数:48,代码来源:storage.go
示例6: validateAuthorizations
func (s *fdbStore) validateAuthorizations(account *Account, c *fdb.Collection) error {
ac := c.Collection("authorizations")
auths, err := ac.List()
if err != nil {
return err
}
for _, auth := range auths {
auc := ac.Collection(auth)
err := s.validateAuthorization(account, auth, auc)
log.Errore(err, "failed to load authorization, ignoring: ", auth)
}
return nil
}
开发者ID:pcarrier,项目名称:acme,代码行数:16,代码来源:storage-fdb.go
示例7: validateAccount
func (s *fdbStore) validateAccount(serverName, accountName string, c *fdb.Collection) error {
f, err := c.Open("privkey")
if err != nil {
return err
}
defer f.Close()
b, err := ioutil.ReadAll(f)
if err != nil {
return err
}
pk, err := acmeutils.LoadPrivateKey(b)
if err != nil {
return err
}
f.Close()
directoryURL, err := decodeAccountURLPart(serverName)
if err != nil {
return err
}
account := &Account{
PrivateKey: pk,
DirectoryURL: directoryURL,
Authorizations: map[string]*Authorization{},
}
accountID := account.ID()
actualAccountID := serverName + "/" + accountName
if accountID != actualAccountID {
return fmt.Errorf("account ID mismatch: %#v != %#v", accountID, actualAccountID)
}
s.accounts[accountID] = account
err = s.validateAuthorizations(account, c)
if err != nil {
return err
}
return nil
}
开发者ID:falkbizz,项目名称:acme,代码行数:46,代码来源:storage-fdb.go
示例8: validateAuthorizations
func (s *fdbStore) validateAuthorizations(account *Account, c *fdb.Collection) error {
ac := c.Collection("authorizations")
auths, err := ac.List()
if err != nil {
return err
}
for _, auth := range auths {
auc := ac.Collection(auth)
err := s.validateAuthorization(account, auth, auc)
if err != nil {
return err
}
}
return nil
}
开发者ID:falkbizz,项目名称:acme,代码行数:18,代码来源:storage-fdb.go
示例9: saveKey
// Saves a key as a file named "privkey" inside the given collection.
func (s *Store) saveKey(c *fdb.Collection, privateKey interface{}) error {
var kb []byte
var hdr string
switch v := privateKey.(type) {
case *rsa.PrivateKey:
kb = x509.MarshalPKCS1PrivateKey(v)
hdr = "RSA PRIVATE KEY"
case *ecdsa.PrivateKey:
var err error
kb, err = x509.MarshalECPrivateKey(v)
if err != nil {
return err
}
hdr = "EC PRIVATE KEY"
default:
return fmt.Errorf("unsupported private key type: %T", privateKey)
}
f, err := c.Create("privkey")
if err != nil {
return err
}
defer f.CloseAbort()
err = pem.Encode(f, &pem.Block{
Type: hdr,
Bytes: kb,
})
if err != nil {
return err
}
f.Close()
return nil
}
开发者ID:meyskens,项目名称:acme,代码行数:37,代码来源:storage.go
示例10: validateCert
func (s *fdbStore) validateCert(certID string, c *fdb.Collection) error {
ss, err := fdb.String(c.Open("url"))
if err != nil {
return err
}
ss = strings.TrimSpace(ss)
if !acmeapi.ValidURL(ss) {
return fmt.Errorf("certificate has invalid URI")
}
actualCertID := determineCertificateID(ss)
if certID != actualCertID {
return fmt.Errorf("cert ID mismatch: %#v != %#v", certID, actualCertID)
}
crt := &Certificate{
URL: ss,
Certificates: nil,
Cached: false,
RevocationDesired: fdb.Exists(c, "revoke"),
Revoked: fdb.Exists(c, "revoked"),
}
fullchain, err := fdb.Bytes(c.Open("fullchain"))
if err == nil {
certs, err := acmeutils.LoadCertificates(fullchain)
if err != nil {
return err
}
xcrt, err := x509.ParseCertificate(certs[0])
if err != nil {
return err
}
keyID := determineKeyIDFromCert(xcrt)
crt.Key = s.keys[keyID]
if crt.Key != nil {
err := c.WriteLink("privkey", fdb.Link{Target: "keys/" + keyID + "/privkey"})
if err != nil {
return err
}
}
crt.Certificates = certs
crt.Cached = true
}
s.certs[certID] = crt
return nil
}
开发者ID:falkbizz,项目名称:acme,代码行数:54,代码来源:storage-fdb.go
注:本文中的github.com/hlandau/acme/fdb.Collection类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论