2

ドキュメントに問題があります。

これが私のプログラムです:

package main

import (
    "bytes"
    "code.google.com/p/go.crypto/openpgp"
    "encoding/base64"
    "fmt"
)

func main() {

    var entity *openpgp.Entity
    entity, err := openpgp.NewEntity("bussiere", "test", "bussiere@gmail.com", nil)
    if err != nil {

    }

    var (
        buffer bytes.Buffer
    )

    entity.SerializePrivate(&buffer, nil)
    data := base64.StdEncoding.EncodeToString([]byte(buffer.String()))

    fmt.Printf("%q\n", data)

    entity.Serialize(&buffer)
    data2 := base64.StdEncoding.EncodeToString([]byte(buffer.String()))

    fmt.Printf("%q\n", data2)

    entity.PrivateKey.Serialize(&buffer)
    data3 := base64.StdEncoding.EncodeToString([]byte(buffer.String()))

    fmt.Printf("%q\n", data3)

    entity.PrimaryKey.Serialize(&buffer)
    data4 := base64.StdEncoding.EncodeToString([]byte(buffer.String()))

    fmt.Printf("%q\n", data4)

    //fmt.Printf(buffer.String())

}

データは次のとおりです。

https://gist.github.com/bussiere/5159890

ここに要点のコードがあります:

https://gist.github.com/bussiere/5159897

公開鍵とは何ですか?

そしてそれをどのように使うのですか?

そして、より大きな鍵を作る方法は?

4

1 に答える 1

5

更新: この問題は修正されました:ここを参照してください

以下の解決策/説明は適切ではありません。

---------------- 従来の回答は以下から始まります --------------------------------

他のサイズのキーを作成する方法に関する質問については、不可能です。

私はまったく同じ問題に遭遇しました。見てください: NewEntityFunction のソースコード:

383 const defaultRSAKeyBits = 2048
384 
385 // NewEntity returns an Entity that contains a fresh RSA/RSA keypair with a
386 // single identity composed of the given full name, comment and email, any of
387 // which may be empty but must not contain any of "()<>\x00".
388 // If config is nil, sensible defaults will be used.
389 func NewEntity(name, comment, email string, config *packet.Config) (*Entity, error) {
390     currentTime := config.Now()
391 
392     uid := packet.NewUserId(name, comment, email)
393     if uid == nil {
394         return nil, errors.InvalidArgumentError("user id field contained invalid characters")
395     }
396     signingPriv, err := rsa.GenerateKey(config.Random(), defaultRSAKeyBits)
397     if err != nil {
398         return nil, err
399     }
400     encryptingPriv, err := rsa.GenerateKey(config.Random(), defaultRSAKeyBits)
401     if err != nil {
402         return nil, err
403     }

defaultRSAKeyBits は、pkg レベルのエクスポートされていない定数です。したがって、この動作を変更する機会はありません。

関数全体をコピーして、キービットのパラメーターを追加し、それをコードベースに保持することになりました。誰かがより良い解決策を持っている場合は、喜んで聞いてください。

于 2013-05-24T08:23:55.517 に答える