コード例 #1
0
ファイル: client.go プロジェクト: kamoljan/camlistore
// sigTime optionally specifies the signature time.
// If zero, the current time is used.
func (c *Client) signBlob(bb schema.Buildable, sigTime time.Time) (string, error) {
	signer, err := c.Signer()
	if err != nil {
		return "", err
	}
	return bb.Builder().SignAt(signer, sigTime)
}
コード例 #2
0
ファイル: client.go プロジェクト: newobject/camlistore
// sigTime optionally specifies the signature time.
// If zero, the current time is used.
func (c *Client) SignBlob(bb schema.Buildable, sigTime time.Time) (string, error) {
	camliSigBlobref := c.SignerPublicKeyBlobref()
	if !camliSigBlobref.Valid() {
		// TODO: more helpful error message
		return "", errors.New("No public key configured.")
	}

	b := bb.Builder().SetSigner(camliSigBlobref).Blob()
	return c.Sign(&jsonsign.SignRequest{
		UnsignedJSON:  b.JSON(),
		SignatureTime: sigTime,
	})
}
コード例 #3
0
ファイル: uploader.go プロジェクト: proppy/camlistore
// sigTime optionally specifies the signature time.
// If zero, the current time is used.
func (up *Uploader) SignBlob(bb schema.Buildable, sigTime time.Time) (string, error) {
	camliSigBlobref := up.Client.SignerPublicKeyBlobref()
	if camliSigBlobref == nil {
		// TODO: more helpful error message
		return "", errors.New("No public key configured.")
	}

	b := bb.Builder().SetSigner(camliSigBlobref).Blob()
	sr := &jsonsign.SignRequest{
		UnsignedJSON:  b.JSON(),
		Fetcher:       up.Client.GetBlobFetcher(),
		EntityFetcher: up.entityFetcher,
		SignatureTime: sigTime,
	}
	return sr.Sign()
}