3
.gitignore
vendored
@ -9,3 +9,6 @@ go-i2p
|
||||
.idea/
|
||||
router.info
|
||||
log
|
||||
*.gv
|
||||
diff
|
||||
err
|
@ -1,20 +1,35 @@
|
||||
# Contributing
|
||||
|
||||
Thanks for taking a look at go-i2p! Please reach out if you have any questions or need help getting started.
|
||||
Thanks for taking a look at go-i2p! Please reach out if you have any questions or need help getting started. We have an IRC channel on IRC2P: #go-i2p-dev and we're reachable here at github.com/go-i2p also.
|
||||
|
||||
## Getting Starting
|
||||
## Getting Started
|
||||
|
||||
Install required dependencies
|
||||
|
||||
This example assumes Ubuntu 16.04
|
||||
This example assumes Ubuntu or Debian based Linux, a reasonably modern version.
|
||||
The instructions will be similar for other Linux distributions with slightly different package managers and package names.
|
||||
|
||||
```sh
|
||||
go get github.com/hkparker/go-i2p
|
||||
go get github.com/Sirupsen/logrus
|
||||
go get github.com/stretchr/testify/assert
|
||||
# For obtaining, modifying, compiling, and tracking changes to go-i2p, install:
|
||||
sudo apt-get install golang-go make git
|
||||
# If you want to generate markdown versions of the godoc locally, also install:
|
||||
go install github.com/robertkrimen/godocdown/godocdown@master
|
||||
# If you want to generate call graphs locally, also install:
|
||||
go install github.com/ofabry/go-callvis@master
|
||||
```
|
||||
|
||||
Fork go-i2p and clone it into your workspace. Make sure you can execute `go test ./...` in the project's root directory. At that point you should have everything you need to start making changes and opening pull requests. If you aren't sure what to work on, take a look at some good [getting started issues](https://github.com/hkparker/go-i2p/issues?q=is%3Aopen+is%3Aissue+label%3A%22start+here%22).
|
||||
On Windows, one must install the latest versions of Go and Git Bash from their respective sources.
|
||||
|
||||
## Set up your workspace:
|
||||
|
||||
```sh
|
||||
github_username=yourusername
|
||||
cd $(go env GOPATH)
|
||||
git clone git@github.com:$github_username/go-i2p github.com/go-i2p/go-i2p
|
||||
github.com/go-i2p/go-i2p
|
||||
```
|
||||
|
||||
Fork go-i2p and clone it into your workspace. Make sure you can execute `go test ./...` in the project's root directory. At that point you should have everything you need to start making changes and opening pull requests.
|
||||
|
||||
## I2P Specifications
|
||||
|
||||
@ -26,9 +41,17 @@ The I2P community maintains up-to-date [specifications](https://geti2p.net/spec)
|
||||
|
||||
## Conventions
|
||||
|
||||
#### Errors
|
||||
|
||||
We use oops to provide context to the errors we return. Do not use `errors.New` or `fmt.Errorf` when returning errors from functions. Instead, wrap raw errors in oops errors. When an error is recieved, used oops to supplement the log output.
|
||||
|
||||
It is OK to use `fmt.Errorf` for declaring custom error types.
|
||||
|
||||
#### Logging
|
||||
|
||||
Logrus is used for logging across all of go-i2p. All log statements should contain an `at` fields and a `reason` field. Here is a good example from the go-i2p implementation of a LeaseSet:
|
||||
Logrus is used for logging across all of go-i2p. We have a small extension of logrus at https://github.com/go-i2p/logger which we use to add a "Fail Fast mode." We are mostly converted over to using it.
|
||||
|
||||
All log statements should contain an `at` fields and a `reason` field. Here is a good example from the go-i2p implementation of a LeaseSet:
|
||||
|
||||
```go
|
||||
log.WithFields(log.Fields{
|
||||
@ -56,4 +79,4 @@ func TestRouterAddressCountReturnsCorrectCount(t *testing.T) {
|
||||
|
||||
## Pull Requests
|
||||
|
||||
Pull requests should pass all tests, test all new behavior, and be correctly formatted by `gofmt` before merge. Feel free to open incomplete pull requests if you are struggling, I will enthusiasticlly help you complete the PR in any way needed.
|
||||
Pull requests should pass all tests, test all new behavior, and be correctly formatted by `gofumpt -w -s -extra` before merge. Feel free to open incomplete pull requests and ask for help and advice.
|
6
Makefile
@ -64,9 +64,5 @@ info:
|
||||
release:
|
||||
github-release release -u go-i2p -r go-i2p -n "${RELEASE_VERSION}" -t "${RELEASE_TAG}" -d "${RELEASE_DESCRIPTION}" -p
|
||||
|
||||
callvis:
|
||||
go-callvis -format svg -focus upgrade -group pkg,type -limit github.com/go-i2p/go-i2p github.com/go-i2p/go-i2p
|
||||
|
||||
godoc:
|
||||
find lib -type d -exec bash -c "ls {}/*.go && godocdown -o ./{}/doc.md ./{}" \;
|
||||
|
||||
./callgraph.sh
|
||||
|
@ -15,9 +15,7 @@ please keep up with these changes, as they will not be backward compatible and r
|
||||
- [ ] Datagrams
|
||||
- [ ] I2CP
|
||||
- [ ] Message routing
|
||||
- [ ] SAM
|
||||
- [ ] Streaming
|
||||
- [ ] Tunnel Manager
|
||||
- Cryptographic primitives
|
||||
- Signing
|
||||
- [ ] ECDSA_SHA256_P256
|
||||
|
19
callgraph.sh
Executable file
@ -0,0 +1,19 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
dirs=$(find lib/ -type d)
|
||||
for dir in $dirs; do
|
||||
files=$(find "$dir" -maxdepth 1 -type f -name "*.go")
|
||||
#echo "Files in $dir: $files"
|
||||
file=$(echo $files | awk '{print $1}')
|
||||
if [ -z "$file" ]; then
|
||||
echo "no go files, skipping"
|
||||
continue
|
||||
fi
|
||||
packageLine=$(grep -E "^package" $file)
|
||||
package=$(echo $packageLine | awk '{print $2}')
|
||||
echo "Generating callgraph for $package"
|
||||
go-callvis -nostd -focus "$package" -group type -format svg -file $dir/$package "github.com/go-i2p/go-i2p/$dir"
|
||||
git mv -v "$dir/doc.md" "$dir/README.md"
|
||||
godocdown -template template.md -o "$dir/README.md" "./$dir"
|
||||
git add -v "$dir/$package.svg" "$dir/README.md"
|
||||
done
|
43
go.mod
@ -1,43 +1,50 @@
|
||||
module github.com/go-i2p/go-i2p
|
||||
|
||||
go 1.23.1
|
||||
go 1.23.3
|
||||
|
||||
toolchain go1.23.5
|
||||
|
||||
require (
|
||||
github.com/beevik/ntp v1.4.3
|
||||
github.com/emirpasic/gods v1.18.1
|
||||
github.com/eyedeekay/go-unzip v0.0.0-20240201194209-560d8225b50e
|
||||
github.com/flynn/noise v1.1.0
|
||||
github.com/go-i2p/logger v0.0.0-20241123010126-3050657e5d0c
|
||||
github.com/samber/oops v1.16.1
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/spf13/cobra v1.8.1
|
||||
github.com/spf13/cobra v1.9.1
|
||||
github.com/spf13/viper v1.19.0
|
||||
github.com/stretchr/testify v1.9.0
|
||||
go.step.sm/crypto v0.53.0
|
||||
golang.org/x/crypto v0.27.0
|
||||
github.com/stretchr/testify v1.10.0
|
||||
go.step.sm/crypto v0.58.1
|
||||
golang.org/x/crypto v0.35.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
||||
require (
|
||||
filippo.io/edwards25519 v1.1.0 // indirect
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||
github.com/fsnotify/fsnotify v1.8.0 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/magiconair/properties v1.8.7 // indirect
|
||||
github.com/magiconair/properties v1.8.9 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
|
||||
github.com/oklog/ulid/v2 v2.1.0 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/sagikazarmark/locafero v0.4.0 // indirect
|
||||
github.com/sagikazarmark/locafero v0.7.0 // indirect
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
||||
github.com/samber/lo v1.49.1 // indirect
|
||||
github.com/sourcegraph/conc v0.3.0 // indirect
|
||||
github.com/spf13/afero v1.11.0 // indirect
|
||||
github.com/spf13/cast v1.7.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/spf13/afero v1.12.0 // indirect
|
||||
github.com/spf13/cast v1.7.1 // indirect
|
||||
github.com/spf13/pflag v1.0.6 // indirect
|
||||
github.com/subosito/gotenv v1.6.0 // indirect
|
||||
go.uber.org/atomic v1.9.0 // indirect
|
||||
go.uber.org/multierr v1.9.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
|
||||
golang.org/x/net v0.29.0 // indirect
|
||||
golang.org/x/sys v0.25.0 // indirect
|
||||
golang.org/x/text v0.18.0 // indirect
|
||||
go.opentelemetry.io/otel v1.34.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.34.0 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa // indirect
|
||||
golang.org/x/net v0.35.0 // indirect
|
||||
golang.org/x/sys v0.30.0 // indirect
|
||||
golang.org/x/text v0.22.0 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
)
|
||||
|
92
go.sum
@ -2,7 +2,7 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
||||
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
||||
github.com/beevik/ntp v1.4.3 h1:PlbTvE5NNy4QHmA4Mg57n7mcFTmr1W1j3gcK7L1lqho=
|
||||
github.com/beevik/ntp v1.4.3/go.mod h1:Unr8Zg+2dRn7d8bHFuehIMSvvUYssHMxW3Q5Nx4RW5Q=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||
@ -15,10 +15,12 @@ github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg=
|
||||
github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
|
||||
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
||||
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
||||
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
|
||||
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
|
||||
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
|
||||
github.com/go-i2p/logger v0.0.0-20241123010126-3050657e5d0c h1:VTiECn3dFEmUlZjto+wOwJ7SSJTHPLyNprQMR5HzIMI=
|
||||
github.com/go-i2p/logger v0.0.0-20241123010126-3050657e5d0c/go.mod h1:te7Zj3g3oMeIl8uBXAgO62UKmZ6m6kHRNg1Mm+X8Hzk=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
@ -30,71 +32,73 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
|
||||
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
||||
github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM=
|
||||
github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
||||
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
|
||||
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
|
||||
github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU=
|
||||
github.com/oklog/ulid/v2 v2.1.0/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ=
|
||||
github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
|
||||
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
|
||||
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
||||
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
|
||||
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
|
||||
github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo=
|
||||
github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
|
||||
github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew=
|
||||
github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o=
|
||||
github.com/samber/oops v1.16.1 h1:XlKkXsWM5g8hE4C+sEV9n0X282fZn3XabVmAKU2RiHI=
|
||||
github.com/samber/oops v1.16.1/go.mod h1:8eXgMAJcDXRAijQsFRhfy/EHDOTiSvwkg6khFqFK078=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
|
||||
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
|
||||
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
|
||||
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
|
||||
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
|
||||
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
|
||||
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs=
|
||||
github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4=
|
||||
github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
|
||||
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||
github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
|
||||
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
|
||||
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
|
||||
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI=
|
||||
github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
|
||||
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
|
||||
go.step.sm/crypto v0.53.0 h1:+1as1ogzuCzx15/468M4mEC5juogI5a0Fzbsyh1CuYY=
|
||||
go.step.sm/crypto v0.53.0/go.mod h1:AqLU78RqNUHepLzyOWZuNN/2++Lu7dZENdO9UzWOGSk=
|
||||
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
|
||||
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
|
||||
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
|
||||
go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
|
||||
go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
|
||||
go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
|
||||
go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
|
||||
go.step.sm/crypto v0.58.1 h1:2PpEYTbytA3el9dW0gh9uJEe/CR/J6wS+x2vWYLG83M=
|
||||
go.step.sm/crypto v0.58.1/go.mod h1:yluOL5OqY7mXGGQ7JUmAv/6h8T8Ge3yXdlEESWHOqDQ=
|
||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
|
||||
golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
|
||||
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
|
||||
golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
|
||||
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
|
||||
golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
|
||||
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa h1:t2QcU6V556bFjYgu4L6C+6VrCPyJZ+eyRsABUPs1mz4=
|
||||
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
|
||||
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
|
||||
golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
|
||||
golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
|
||||
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
||||
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
|
||||
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
||||
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
|
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/bootstrap"
|
||||
|
||||

|
||||
|
||||
provides generic interfaces for initial bootstrap into network and network
|
||||
### reseeding
|
||||
|
||||
@ -21,3 +23,9 @@ type Bootstrap interface {
|
||||
```
|
||||
|
||||
interface defining a way to bootstrap into the i2p network
|
||||
|
||||
|
||||
|
||||
bootstrap
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/bootstrap
|
13
lib/bootstrap/bootstrap.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="0pt" height="0pt"
|
||||
viewBox="0.00 0.00 0.00 0.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 0)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,0 0,0 0,0 0,0"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 584 B |
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/base32"
|
||||
|
||||

|
||||
|
||||
Package base32 implmenets utilities for encoding and decoding text using I2P's
|
||||
### alphabet
|
||||
|
||||
@ -31,3 +33,9 @@ DecodeString decodes base64 string to []byte I2PEncoding
|
||||
func EncodeToString(data []byte) string
|
||||
```
|
||||
EncodeToString encodes []byte to a base32 string using I2PEncoding
|
||||
|
||||
|
||||
|
||||
base32
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/base32
|
13
lib/common/base32/base32.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="0pt" height="0pt"
|
||||
viewBox="0.00 0.00 0.00 0.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 0)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,0 0,0 0,0 0,0"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 584 B |
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/base64"
|
||||
|
||||

|
||||
|
||||
Package base64 implmenets utilities for encoding and decoding text using I2P's
|
||||
### alphabet
|
||||
|
||||
@ -31,3 +33,9 @@ DecodeString decodes base64 string to []byte I2PEncoding
|
||||
func EncodeToString(data []byte) string
|
||||
```
|
||||
I2PEncoding is the standard base64 encoding used through I2P.
|
||||
|
||||
|
||||
|
||||
base64
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/base64
|
13
lib/common/base64/base64.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="0pt" height="0pt"
|
||||
viewBox="0.00 0.00 0.00 0.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 0)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,0 0,0 0,0 0,0"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 584 B |
@ -2,6 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/certificate"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
@ -23,6 +26,12 @@ const CERT_MIN_SIZE = 3
|
||||
CERT_MIN_SIZE is the minimum size of a valid Certificate in []byte 1 byte for
|
||||
type 2 bytes for payload length
|
||||
|
||||
#### func GetSignatureTypeFromCertificate
|
||||
|
||||
```go
|
||||
func GetSignatureTypeFromCertificate(cert Certificate) (int, error)
|
||||
```
|
||||
|
||||
#### type Certificate
|
||||
|
||||
```go
|
||||
@ -37,10 +46,22 @@ https://geti2p.net/spec/common-structures#certificate
|
||||
#### func NewCertificate
|
||||
|
||||
```go
|
||||
func NewCertificate(data []byte) (certificate Certificate, err error)
|
||||
func NewCertificate() *Certificate
|
||||
```
|
||||
NewCertificate creates a new Certficiate from []byte returns err if the
|
||||
certificate is too short or if the payload doesn't match specified length.
|
||||
NewCertificate creates a new Certificate with default NULL type
|
||||
|
||||
#### func NewCertificateDeux
|
||||
|
||||
```go
|
||||
func NewCertificateDeux(certType int, payload []byte) (*Certificate, error)
|
||||
```
|
||||
|
||||
#### func NewCertificateWithType
|
||||
|
||||
```go
|
||||
func NewCertificateWithType(certType uint8, payload []byte) (*Certificate, error)
|
||||
```
|
||||
NewCertificateWithType creates a new Certificate with specified type and payload
|
||||
|
||||
#### func ReadCertificate
|
||||
|
||||
@ -96,3 +117,9 @@ func (c *Certificate) Type() (cert_type int)
|
||||
```
|
||||
Type returns the Certificate type specified in the first byte of the
|
||||
Certificate,
|
||||
|
||||
|
||||
|
||||
certificate
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/certificate
|
@ -4,13 +4,13 @@ package certificate
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
// log "github.com/sirupsen/logrus"
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
)
|
||||
@ -158,7 +158,7 @@ func readCertificate(data []byte) (certificate Certificate, err error) {
|
||||
"certificate_bytes_length": len(data),
|
||||
"reason": "too short (len < CERT_MIN_SIZE)" + fmt.Sprintf("%d", certificate.kind.Int()),
|
||||
}).Error("invalid certificate, empty")
|
||||
err = fmt.Errorf("error parsing certificate: certificate is empty")
|
||||
err = oops.Errorf("error parsing certificate: certificate is empty")
|
||||
return
|
||||
case 1, 2:
|
||||
certificate.kind = Integer(data[0 : len(data)-1])
|
||||
@ -168,7 +168,7 @@ func readCertificate(data []byte) (certificate Certificate, err error) {
|
||||
"certificate_bytes_length": len(data),
|
||||
"reason": "too short (len < CERT_MIN_SIZE)" + fmt.Sprintf("%d", certificate.kind.Int()),
|
||||
}).Error("invalid certificate, too short")
|
||||
err = fmt.Errorf("error parsing certificate: certificate is too short")
|
||||
err = oops.Errorf("error parsing certificate: certificate is too short")
|
||||
return
|
||||
default:
|
||||
certificate.kind = Integer(data[0:1])
|
||||
@ -176,7 +176,7 @@ func readCertificate(data []byte) (certificate Certificate, err error) {
|
||||
payloadLength := len(data) - CERT_MIN_SIZE
|
||||
certificate.payload = data[CERT_MIN_SIZE:]
|
||||
if certificate.len.Int() > len(data)-CERT_MIN_SIZE {
|
||||
err = fmt.Errorf("certificate parsing warning: certificate data is shorter than specified by length")
|
||||
err = oops.Errorf("certificate parsing warning: certificate data is shorter than specified by length")
|
||||
log.WithFields(logrus.Fields{
|
||||
"at": "(Certificate) NewCertificate",
|
||||
"certificate_bytes_length": certificate.len.Int(),
|
||||
@ -222,12 +222,12 @@ func NewCertificate() *Certificate {
|
||||
|
||||
func NewCertificateDeux(certType int, payload []byte) (*Certificate, error) {
|
||||
if certType < 0 || certType > 255 {
|
||||
return nil, fmt.Errorf("invalid certificate type: %d", certType)
|
||||
return nil, oops.Errorf("invalid certificate type: %d", certType)
|
||||
}
|
||||
certTypeByte := byte(certType)
|
||||
|
||||
if len(payload) > 65535 {
|
||||
return nil, fmt.Errorf("payload too long: %d bytes", len(payload))
|
||||
return nil, oops.Errorf("payload too long: %d bytes", len(payload))
|
||||
}
|
||||
|
||||
_len, err := NewIntegerFromInt(len(payload), 2)
|
||||
@ -255,12 +255,12 @@ func NewCertificateWithType(certType uint8, payload []byte) (*Certificate, error
|
||||
case CERT_NULL, CERT_HASHCASH, CERT_HIDDEN, CERT_SIGNED, CERT_MULTIPLE, CERT_KEY:
|
||||
// Valid type
|
||||
default:
|
||||
return nil, fmt.Errorf("invalid certificate type: %d", certType)
|
||||
return nil, oops.Errorf("invalid certificate type: %d", certType)
|
||||
}
|
||||
|
||||
// For NULL certificates, payload should be empty
|
||||
if certType == CERT_NULL && len(payload) > 0 {
|
||||
return nil, errors.New("NULL certificates must have empty payload")
|
||||
return nil, oops.Errorf("NULL certificates must have empty payload")
|
||||
}
|
||||
length, _ := NewIntegerFromInt(len(payload), 2)
|
||||
|
||||
@ -280,10 +280,10 @@ func NewCertificateWithType(certType uint8, payload []byte) (*Certificate, error
|
||||
|
||||
func GetSignatureTypeFromCertificate(cert Certificate) (int, error) {
|
||||
if cert.Type() != CERT_KEY {
|
||||
return 0, fmt.Errorf("unexpected certificate type: %d", cert.Type())
|
||||
return 0, oops.Errorf("unexpected certificate type: %d", cert.Type())
|
||||
}
|
||||
if len(cert.payload) < 4 {
|
||||
return 0, fmt.Errorf("certificate payload too short to contain signature type")
|
||||
return 0, oops.Errorf("certificate payload too short to contain signature type")
|
||||
}
|
||||
sigType := int(binary.BigEndian.Uint16(cert.payload[2:4])) // Changed offset to read signing key type
|
||||
return sigType, nil
|
||||
|
617
lib/common/certificate/certificate.svg
Normal file
@ -0,0 +1,617 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="1146pt" height="928pt"
|
||||
viewBox="0.00 0.00 1146.34 928.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 928)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-928 1146.344,-928 1146.344,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-920 1138.344,-920 1138.344,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="573.172" y="-899.8" font-family="Arial" font-size="18.00" fill="#000000">certificate</text>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/data.Integer</title>
|
||||
<g id="a_clust5"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/data.Integer">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M1038.4239,-407C1038.4239,-407 1086.3103,-407 1086.3103,-407 1092.3103,-407 1098.3103,-413 1098.3103,-419 1098.3103,-419 1098.3103,-534 1098.3103,-534 1098.3103,-540 1092.3103,-546 1086.3103,-546 1086.3103,-546 1038.4239,-546 1038.4239,-546 1032.4239,-546 1026.4239,-540 1026.4239,-534 1026.4239,-534 1026.4239,-419 1026.4239,-419 1026.4239,-413 1032.4239,-407 1038.4239,-407"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-415.5" font-family="Arial" font-size="15.00" fill="#222222">(Integer)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
|
||||
<g id="a_clust4"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M1035.7065,-262C1035.7065,-262 1090.0277,-262 1090.0277,-262 1096.0277,-262 1102.0277,-268 1102.0277,-274 1102.0277,-274 1102.0277,-328 1102.0277,-328 1102.0277,-334 1096.0277,-340 1090.0277,-340 1090.0277,-340 1035.7065,-340 1035.7065,-340 1029.7065,-340 1023.7065,-334 1023.7065,-328 1023.7065,-328 1023.7065,-274 1023.7065,-274 1023.7065,-268 1029.7065,-262 1035.7065,-262"/>
|
||||
<text text-anchor="middle" x="1062.8671" y="-270.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/logger.Logger</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/go-i2p/logger.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M1023.2577,-619C1023.2577,-619 1101.4765,-619 1101.4765,-619 1107.4765,-619 1113.4765,-625 1113.4765,-631 1113.4765,-631 1113.4765,-807 1113.4765,-807 1113.4765,-813 1107.4765,-819 1101.4765,-819 1101.4765,-819 1023.2577,-819 1023.2577,-819 1017.2577,-819 1011.2577,-813 1011.2577,-807 1011.2577,-807 1011.2577,-631 1011.2577,-631 1011.2577,-625 1017.2577,-619 1023.2577,-619"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-627.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/common/certificate.Certificate">
|
||||
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M322.261,-285C322.261,-285 866.0844,-285 866.0844,-285 872.0844,-285 878.0844,-291 878.0844,-297 878.0844,-297 878.0844,-534 878.0844,-534 878.0844,-540 872.0844,-546 866.0844,-546 866.0844,-546 322.261,-546 322.261,-546 316.261,-546 310.261,-540 310.261,-534 310.261,-534 310.261,-297 310.261,-297 310.261,-291 316.261,-285 322.261,-285"/>
|
||||
<text text-anchor="middle" x="594.1727" y="-293.5" font-family="Arial" font-size="15.00" fill="#222222">(*Certificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate | defined in certificate.go:150 at certificate.go:194: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:160: calling [(*github.com/go-i2p/logger.Logger).Error] at certificate.go:170: calling [(*github.com/go-i2p/logger.Logger).Error] at certificate.go:188: calling [(*github.com/go-i2p/logger.Logger).Error] at certificate.go:161: calling [github.com/samber/oops.Errorf] at certificate.go:171: calling [github.com/samber/oops.Errorf] at certificate.go:179: calling [github.com/samber/oops.Errorf] at certificate.go:159: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:169: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:178: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:182: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:192: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:193: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:156: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:166: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:180: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:191: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M879.924,-615C879.924,-615 796.587,-615 796.587,-615 790.587,-615 784.587,-609 784.587,-603 784.587,-603 784.587,-591 784.587,-591 784.587,-585 790.587,-579 796.587,-579 796.587,-579 879.924,-579 879.924,-579 885.924,-579 891.924,-585 891.924,-591 891.924,-591 891.924,-603 891.924,-603 891.924,-609 885.924,-615 879.924,-615"/>
|
||||
<text text-anchor="middle" x="838.2555" y="-592.8" font-family="Verdana" font-size="14.00" fill="#000000">readCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/samber/oops.Errorf -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/samber/oops.Errorf</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1079.5624,-129C1079.5624,-129 1045.1718,-129 1045.1718,-129 1039.1718,-129 1033.1718,-123 1033.1718,-117 1033.1718,-117 1033.1718,-105 1033.1718,-105 1033.1718,-99 1039.1718,-93 1045.1718,-93 1045.1718,-93 1079.5624,-93 1079.5624,-93 1085.5624,-93 1091.5624,-99 1091.5624,-105 1091.5624,-105 1091.5624,-117 1091.5624,-117 1091.5624,-123 1085.5624,-129 1079.5624,-129"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-115.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
|
||||
<text text-anchor="middle" x="1062.3671" y="-98.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->github.com/samber/oops.Errorf -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge17"><a xlink:title="at certificate.go:161: calling [github.com/samber/oops.Errorf] at certificate.go:171: calling [github.com/samber/oops.Errorf] at certificate.go:179: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M887.6922,-578.8268C900.2566,-572.1105 912.6559,-563.2952 921.3902,-552 962.8333,-498.4057 971.7912,-319.8683 994.3902,-256 1009.3883,-213.6131 1032.5644,-166.915 1047.601,-138.2675"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1050.7756,-139.7516 1052.3648,-129.2766 1044.5902,-136.4742 1050.7756,-139.7516"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="node17" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_node17"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithFields | defined in log.go:60">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1093.5862,-750C1093.5862,-750 1031.148,-750 1031.148,-750 1025.148,-750 1019.148,-744 1019.148,-738 1019.148,-738 1019.148,-726 1019.148,-726 1019.148,-720 1025.148,-714 1031.148,-714 1031.148,-714 1093.5862,-714 1093.5862,-714 1099.5862,-714 1105.5862,-720 1105.5862,-726 1105.5862,-726 1105.5862,-738 1105.5862,-738 1105.5862,-744 1099.5862,-750 1093.5862,-750"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-736.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="1062.3671" y="-719.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge39" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge39"><a xlink:title="at certificate.go:156: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:166: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:180: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:191: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M862.2851,-615.121C892.2409,-637.2428 945.472,-675.0325 994.3902,-702 999.262,-704.6857 1004.4214,-707.3179 1009.6333,-709.8383"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1008.4809,-713.1637 1019.0207,-714.242 1011.4538,-706.8263 1008.4809,-713.1637"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="node19" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_node19"><a xlink:title="(*github.com/go-i2p/logger.Logger).Error | defined in log.go:42">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1080.1334,-689C1080.1334,-689 1044.6008,-689 1044.6008,-689 1038.6008,-689 1032.6008,-683 1032.6008,-677 1032.6008,-677 1032.6008,-665 1032.6008,-665 1032.6008,-659 1038.6008,-653 1044.6008,-653 1044.6008,-653 1080.1334,-653 1080.1334,-653 1086.1334,-653 1092.1334,-659 1092.1334,-665 1092.1334,-665 1092.1334,-677 1092.1334,-677 1092.1334,-683 1086.1334,-689 1080.1334,-689"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-675.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="1062.3671" y="-658.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge16"><a xlink:title="at certificate.go:160: calling [(*github.com/go-i2p/logger.Logger).Error] at certificate.go:170: calling [(*github.com/go-i2p/logger.Logger).Error] at certificate.go:188: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M891.9358,-614.7248C932.1804,-628.0133 986.3626,-645.9039 1022.7345,-657.9136"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1021.9014,-661.3243 1032.4946,-661.1363 1024.0963,-654.6773 1021.9014,-661.3243"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="node20" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_node20"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1081.1891,-332C1081.1891,-332 1043.5451,-332 1043.5451,-332 1037.5451,-332 1031.5451,-326 1031.5451,-320 1031.5451,-320 1031.5451,-308 1031.5451,-308 1031.5451,-302 1037.5451,-296 1043.5451,-296 1043.5451,-296 1081.1891,-296 1081.1891,-296 1087.1891,-296 1093.1891,-302 1093.1891,-308 1093.1891,-308 1093.1891,-320 1093.1891,-320 1093.1891,-326 1087.1891,-332 1081.1891,-332"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-318.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="1062.3671" y="-301.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge2"><a xlink:title="at certificate.go:194: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M883.6249,-578.925C896.9934,-571.9937 910.8476,-563.037 921.3902,-552 972.8783,-498.0971 954.9975,-464.2831 994.3902,-401 1007.8831,-379.3241 1025.7385,-356.651 1039.7636,-339.887"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1042.5136,-342.0555 1046.305,-332.1623 1037.1716,-337.5318 1042.5136,-342.0555"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="node21" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_node21"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int | defined in integer.go:32">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1077.3671,-538C1077.3671,-538 1047.3671,-538 1047.3671,-538 1041.3671,-538 1035.3671,-532 1035.3671,-526 1035.3671,-526 1035.3671,-514 1035.3671,-514 1035.3671,-508 1041.3671,-502 1047.3671,-502 1047.3671,-502 1077.3671,-502 1077.3671,-502 1083.3671,-502 1089.3671,-508 1089.3671,-514 1089.3671,-514 1089.3671,-526 1089.3671,-526 1089.3671,-532 1083.3671,-538 1077.3671,-538"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-524.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="1062.3671" y="-507.4" font-family="Verdana" font-size="14.00" fill="#000000">Int</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge20"><a xlink:title="at certificate.go:159: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:169: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:178: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:182: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:192: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:193: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M890.7997,-578.9469C932.19,-564.7261 988.8409,-545.2621 1025.521,-532.6595"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1026.9878,-535.8565 1035.3079,-529.297 1024.7132,-529.2363 1026.9878,-535.8565"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate | defined in certificate.go:201 at certificate.go:202: calling [github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate] at certificate.go:210: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:207: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes] at certificate.go:204: calling [(*github.com/go-i2p/logger.Logger).Warn] at certificate.go:208: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M167.867,-845C167.867,-845 80.178,-845 80.178,-845 74.178,-845 68.178,-839 68.178,-833 68.178,-833 68.178,-821 68.178,-821 68.178,-815 74.178,-809 80.178,-809 80.178,-809 167.867,-809 167.867,-809 173.867,-809 179.867,-815 179.867,-821 179.867,-821 179.867,-833 179.867,-833 179.867,-839 173.867,-845 167.867,-845"/>
|
||||
<text text-anchor="middle" x="124.0225" y="-822.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate</title>
|
||||
<g id="a_edge8"><a xlink:title="at certificate.go:202: calling [github.com/go-i2p/go-i2p/lib/common/certificate.readCertificate]">
|
||||
<path fill="none" stroke="#000000" d="M180.1672,-827C229.1368,-827 302.0893,-827 365.6397,-827 365.6397,-827 365.6397,-827 527.1776,-827 662.8932,-827 778.1694,-683.7089 820.7207,-623.3279"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="823.6406,-625.2592 826.4648,-615.0477 817.889,-621.2692 823.6406,-625.2592"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes -->
|
||||
<g id="node11" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes</title>
|
||||
<g id="a_node11"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes | defined in certificate.go:87 at certificate.go:90: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:92: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:95: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:88: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:89: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M400.8974,-477C400.8974,-477 330.382,-477 330.382,-477 324.382,-477 318.382,-471 318.382,-465 318.382,-465 318.382,-453 318.382,-453 318.382,-447 324.382,-441 330.382,-441 330.382,-441 400.8974,-441 400.8974,-441 406.8974,-441 412.8974,-447 412.8974,-453 412.8974,-453 412.8974,-465 412.8974,-465 412.8974,-471 406.8974,-477 400.8974,-477"/>
|
||||
<text text-anchor="middle" x="365.6397" y="-454.8" font-family="Verdana" font-size="14.00" fill="#000000">ExcessBytes</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes</title>
|
||||
<g id="a_edge18"><a xlink:title="at certificate.go:207: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes]">
|
||||
<path fill="none" stroke="#000000" d="M129.437,-808.9044C146.6115,-754.2052 204.7309,-588.3227 305.045,-490 307.6901,-487.4074 310.5958,-484.985 313.6587,-482.7299"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="315.668,-485.597 322.0625,-477.1494 311.7957,-479.7656 315.668,-485.597"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge22"><a xlink:title="at certificate.go:208: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M179.9695,-836.824C228.8138,-844.544 301.6938,-854 365.6397,-854 365.6397,-854 365.6397,-854 838.2555,-854 918.5747,-854 924.2112,-802.065 994.3902,-763 999.5451,-760.1306 1005.014,-757.3022 1010.5228,-754.5908"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1012.2784,-757.6307 1019.7827,-750.1517 1009.2523,-751.3185 1012.2784,-757.6307"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Warn -->
|
||||
<g id="node18" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Warn</title>
|
||||
<g id="a_node18"><a xlink:title="(*github.com/go-i2p/logger.Logger).Warn | defined in log.go:30">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1080.1334,-811C1080.1334,-811 1044.6008,-811 1044.6008,-811 1038.6008,-811 1032.6008,-805 1032.6008,-799 1032.6008,-799 1032.6008,-787 1032.6008,-787 1032.6008,-781 1038.6008,-775 1044.6008,-775 1044.6008,-775 1080.1334,-775 1080.1334,-775 1086.1334,-775 1092.1334,-781 1092.1334,-787 1092.1334,-787 1092.1334,-799 1092.1334,-799 1092.1334,-805 1086.1334,-811 1080.1334,-811"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-797.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="1062.3671" y="-780.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->(*github.com/go-i2p/logger.Logger).Warn -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->(*github.com/go-i2p/logger.Logger).Warn</title>
|
||||
<g id="a_edge21"><a xlink:title="at certificate.go:204: calling [(*github.com/go-i2p/logger.Logger).Warn]">
|
||||
<path fill="none" stroke="#8b4513" d="M174.6643,-845.1314C223.0522,-860.819 298.3724,-881 365.6397,-881 365.6397,-881 365.6397,-881 838.2555,-881 892.3836,-881 907.9658,-880.678 958.3902,-861 985.466,-850.4337 1012.8462,-832.1507 1032.7088,-817.2021"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1034.9416,-819.9004 1040.7382,-811.0319 1030.6763,-814.3499 1034.9416,-819.9004"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge9"><a xlink:title="at certificate.go:210: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M126.618,-808.9925C142.1927,-704.3357 227.2637,-179 365.6397,-179 365.6397,-179 365.6397,-179 838.2555,-179 876.2584,-179 889.4097,-178.4702 921.3902,-199 965.6091,-227.3863 951.2954,-261.9346 994.3902,-292 1002.5446,-297.689 1012.2569,-301.9722 1021.752,-305.1723"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1020.9084,-308.5739 1031.4939,-308.1286 1022.9412,-301.8755 1020.9084,-308.5739"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.init -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.init</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/certificate.init | defined in .:0 at certificate.go:18: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M139.0225,-59C139.0225,-59 109.0225,-59 109.0225,-59 103.0225,-59 97.0225,-53 97.0225,-47 97.0225,-47 97.0225,-35 97.0225,-35 97.0225,-29 103.0225,-23 109.0225,-23 109.0225,-23 139.0225,-23 139.0225,-23 145.0225,-23 151.0225,-29 151.0225,-35 151.0225,-35 151.0225,-47 151.0225,-47 151.0225,-53 145.0225,-59 139.0225,-59"/>
|
||||
<text text-anchor="middle" x="124.0225" y="-36.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/go-i2p/logger.GetGoI2PLogger | defined in log.go:120">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M414.3292,-59C414.3292,-59 316.9502,-59 316.9502,-59 310.9502,-59 304.9502,-53 304.9502,-47 304.9502,-47 304.9502,-35 304.9502,-35 304.9502,-29 310.9502,-23 316.9502,-23 316.9502,-23 414.3292,-23 414.3292,-23 420.3292,-23 426.3292,-29 426.3292,-35 426.3292,-35 426.3292,-47 426.3292,-47 426.3292,-53 420.3292,-59 414.3292,-59"/>
|
||||
<text text-anchor="middle" x="365.6397" y="-45.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="365.6397" y="-28.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.init->github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="edge36" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.init->github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_edge36"><a xlink:title="at certificate.go:18: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="none" stroke="#8b4513" d="M151.2694,-41C185.8355,-41 246.7324,-41 294.8092,-41"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="294.8596,-44.5001 304.8596,-41 294.8595,-37.5001 294.8596,-44.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.GetSignatureTypeFromCertificate -->
|
||||
<g id="node6" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.GetSignatureTypeFromCertificate</title>
|
||||
<g id="a_node6"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/certificate.GetSignatureTypeFromCertificate | defined in certificate.go:281 at certificate.go:282: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type] at certificate.go:283: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type] at certificate.go:283: calling [github.com/samber/oops.Errorf] at certificate.go:286: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M220.0675,-223C220.0675,-223 27.9775,-223 27.9775,-223 21.9775,-223 15.9775,-217 15.9775,-211 15.9775,-211 15.9775,-199 15.9775,-199 15.9775,-193 21.9775,-187 27.9775,-187 27.9775,-187 220.0675,-187 220.0675,-187 226.0675,-187 232.0675,-193 232.0675,-199 232.0675,-199 232.0675,-211 232.0675,-211 232.0675,-217 226.0675,-223 220.0675,-223"/>
|
||||
<text text-anchor="middle" x="124.0225" y="-200.8" font-family="Verdana" font-size="14.00" fill="#000000">GetSignatureTypeFromCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.GetSignatureTypeFromCertificate->github.com/samber/oops.Errorf -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.GetSignatureTypeFromCertificate->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge4"><a xlink:title="at certificate.go:283: calling [github.com/samber/oops.Errorf] at certificate.go:286: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M145.3922,-186.9364C185.6792,-154.7915 276.818,-91 365.6397,-91 365.6397,-91 365.6397,-91 718.6208,-91 829.0428,-91 959.081,-101.4127 1022.9377,-107.2115"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1022.6938,-110.7038 1032.9723,-108.1345 1023.335,-103.7332 1022.6938,-110.7038"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type -->
|
||||
<g id="node15" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type</title>
|
||||
<g id="a_node15"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type | defined in certificate.go:116 at certificate.go:117: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:120: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:118: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M380.6397,-416C380.6397,-416 350.6397,-416 350.6397,-416 344.6397,-416 338.6397,-410 338.6397,-404 338.6397,-404 338.6397,-392 338.6397,-392 338.6397,-386 344.6397,-380 350.6397,-380 350.6397,-380 380.6397,-380 380.6397,-380 386.6397,-380 392.6397,-386 392.6397,-392 392.6397,-392 392.6397,-404 392.6397,-404 392.6397,-410 386.6397,-416 380.6397,-416"/>
|
||||
<text text-anchor="middle" x="365.6397" y="-393.8" font-family="Verdana" font-size="14.00" fill="#000000">Type</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.GetSignatureTypeFromCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.GetSignatureTypeFromCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type</title>
|
||||
<g id="a_edge3"><a xlink:title="at certificate.go:282: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type] at certificate.go:283: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type]">
|
||||
<path fill="none" stroke="#000000" d="M140.8989,-223.1706C171.4062,-255.2997 238.7388,-322.9884 305.045,-368 312.5955,-373.1256 321.1482,-377.9048 329.3982,-382.0752"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="327.9911,-385.2828 338.5145,-386.5112 331.054,-378.9885 327.9911,-385.2828"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux -->
|
||||
<g id="node7" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux</title>
|
||||
<g id="a_node7"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux | defined in certificate.go:223 at certificate.go:243: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:225: calling [github.com/samber/oops.Errorf] at certificate.go:230: calling [github.com/samber/oops.Errorf] at certificate.go:246: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:233: calling [github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M896.0832,-153C896.0832,-153 780.4278,-153 780.4278,-153 774.4278,-153 768.4278,-147 768.4278,-141 768.4278,-141 768.4278,-129 768.4278,-129 768.4278,-123 774.4278,-117 780.4278,-117 780.4278,-117 896.0832,-117 896.0832,-117 902.0832,-117 908.0832,-123 908.0832,-129 908.0832,-129 908.0832,-141 908.0832,-141 908.0832,-147 902.0832,-153 896.0832,-153"/>
|
||||
<text text-anchor="middle" x="838.2555" y="-130.8" font-family="Verdana" font-size="14.00" fill="#000000">NewCertificateDeux</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux->github.com/samber/oops.Errorf -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge23"><a xlink:title="at certificate.go:225: calling [github.com/samber/oops.Errorf] at certificate.go:230: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M908.244,-127.505C945.9757,-123.4643 991.1517,-118.6264 1022.8055,-115.2366"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1023.4211,-118.6908 1032.9915,-114.1458 1022.6757,-111.7306 1023.4211,-118.6908"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt -->
|
||||
<g id="node8" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt</title>
|
||||
<g id="a_node8"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt | defined in integer.go:68">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1118.3209,-53C1118.3209,-53 1006.4133,-53 1006.4133,-53 1000.4133,-53 994.4133,-47 994.4133,-41 994.4133,-41 994.4133,-29 994.4133,-29 994.4133,-23 1000.4133,-17 1006.4133,-17 1006.4133,-17 1118.3209,-17 1118.3209,-17 1124.3209,-17 1130.3209,-23 1130.3209,-29 1130.3209,-29 1130.3209,-41 1130.3209,-41 1130.3209,-47 1124.3209,-53 1118.3209,-53"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-39.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="1062.3671" y="-22.4" font-family="Verdana" font-size="14.00" fill="#000000">NewIntegerFromInt</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux->github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt -->
|
||||
<g id="edge37" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux->github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt</title>
|
||||
<g id="a_edge37"><a xlink:title="at certificate.go:233: calling [github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt]">
|
||||
<path fill="none" stroke="#8b4513" d="M878.8404,-116.8908C916.3257,-100.1646 972.1246,-75.2668 1012.3495,-57.3182"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1014.0001,-60.4143 1021.7061,-53.1432 1011.1477,-54.0218 1014.0001,-60.4143"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge12"><a xlink:title="at certificate.go:243: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M851.522,-153.0586C870.1671,-179.3685 903.8061,-230.4117 921.3902,-279 953.8513,-368.6964 935.6768,-626.8209 994.3902,-702 998.6579,-707.4646 1004.1302,-711.9569 1010.1131,-715.6445"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1008.6953,-718.8555 1019.1632,-720.4908 1011.9999,-712.6846 1008.6953,-718.8555"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge34" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateDeux->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge34"><a xlink:title="at certificate.go:246: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M908.395,-144.374C926.6456,-149.8377 944.937,-158.4481 958.3902,-172 997.6189,-211.5165 955.4437,-252.2053 994.3902,-292 1001.7432,-299.5132 1011.6778,-304.4629 1021.6788,-307.7231"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1021.0388,-311.1769 1031.6088,-310.4525 1022.8941,-304.4273 1021.0388,-311.1769"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType -->
|
||||
<g id="node9" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType</title>
|
||||
<g id="a_node9"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType | defined in certificate.go:252 at certificate.go:258: calling [github.com/samber/oops.Errorf] at certificate.go:263: calling [github.com/samber/oops.Errorf] at certificate.go:265: calling [github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M909.5251,-57C909.5251,-57 766.9859,-57 766.9859,-57 760.9859,-57 754.9859,-51 754.9859,-45 754.9859,-45 754.9859,-33 754.9859,-33 754.9859,-27 760.9859,-21 766.9859,-21 766.9859,-21 909.5251,-21 909.5251,-21 915.5251,-21 921.5251,-27 921.5251,-33 921.5251,-33 921.5251,-45 921.5251,-45 921.5251,-51 915.5251,-57 909.5251,-57"/>
|
||||
<text text-anchor="middle" x="838.2555" y="-34.8" font-family="Verdana" font-size="14.00" fill="#000000">NewCertificateWithType</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType->github.com/samber/oops.Errorf -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge28"><a xlink:title="at certificate.go:258: calling [github.com/samber/oops.Errorf] at certificate.go:263: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M894.519,-57.0757C934.8151,-70.0216 988.0345,-87.1193 1023.6417,-98.5588"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1022.6011,-101.9006 1033.1924,-101.6271 1024.7422,-95.236 1022.6011,-101.9006"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType->github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt -->
|
||||
<g id="edge40" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType->github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt</title>
|
||||
<g id="a_edge40"><a xlink:title="at certificate.go:265: calling [github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt]">
|
||||
<path fill="none" stroke="#8b4513" d="M921.7064,-37.5105C942.1472,-37.1457 963.949,-36.7566 984.1349,-36.3963"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="984.2775,-39.8944 994.2134,-36.2164 984.1525,-32.8955 984.2775,-39.8944"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length -->
|
||||
<g id="node10" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length</title>
|
||||
<g id="a_node10"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length | defined in certificate.go:125 at certificate.go:129: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:126: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:127: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M857.9142,-538C857.9142,-538 818.5968,-538 818.5968,-538 812.5968,-538 806.5968,-532 806.5968,-526 806.5968,-526 806.5968,-514 806.5968,-514 806.5968,-508 812.5968,-502 818.5968,-502 818.5968,-502 857.9142,-502 857.9142,-502 863.9142,-502 869.9142,-508 869.9142,-514 869.9142,-514 869.9142,-526 869.9142,-526 869.9142,-532 863.9142,-538 857.9142,-538"/>
|
||||
<text text-anchor="middle" x="838.2555" y="-515.8" font-family="Verdana" font-size="14.00" fill="#000000">Length</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge38" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge38"><a xlink:title="at certificate.go:127: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M870.0778,-521.9339C886.97,-524.4397 907.1252,-529.9669 921.3902,-542 981.1357,-592.3975 938.7785,-647.0748 994.3902,-702 998.9677,-706.521 1004.3418,-710.4191 1010.0282,-713.7654"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1008.6741,-717.0082 1019.1517,-718.5799 1011.9411,-710.8173 1008.6741,-717.0082"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge24"><a xlink:title="at certificate.go:129: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M863.6821,-501.7945C880.5068,-489.4202 902.8082,-472.3815 921.3902,-456 964.9263,-417.6195 1011.6811,-368.8553 1038.9109,-339.6073"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1041.4949,-341.9681 1045.7268,-332.2552 1036.3615,-337.2091 1041.4949,-341.9681"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge35" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge35"><a xlink:title="at certificate.go:126: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M870.3652,-520C911.289,-520 981.8968,-520 1025.1348,-520"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1025.2399,-523.5001 1035.2399,-520 1025.2398,-516.5001 1025.2399,-523.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge6"><a xlink:title="at certificate.go:90: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M413.037,-477.0926C418.1184,-480.6981 422.7107,-484.966 426.2344,-490 463.4737,-543.2008 413.5692,-737.0025 462.2344,-780 503.5475,-816.5017 904.5976,-792.0624 958.3902,-780 975.6557,-776.1284 978.3402,-770.4489 994.3902,-763 1000.477,-760.1751 1006.8798,-757.2259 1013.2223,-754.3181"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1014.7903,-757.4497 1022.4278,-750.1066 1011.8781,-751.0842 1014.7903,-757.4497"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge19"><a xlink:title="at certificate.go:92: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:95: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M407.6685,-440.8914C414.1432,-437.349 420.556,-433.3622 426.2344,-429 480.1656,-387.5692 459.1696,-314 527.1776,-314 527.1776,-314 527.1776,-314 838.2555,-314 902.192,-314 976.3886,-314 1021.3294,-314"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1021.5535,-317.5001 1031.5535,-314 1021.5535,-310.5001 1021.5535,-317.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).ExcessBytes->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge30"><a xlink:title="at certificate.go:88: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at certificate.go:89: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M413.0536,-442.2321C444.9043,-432.4424 488.049,-422 527.1776,-422 527.1776,-422 527.1776,-422 718.6208,-422 779.7179,-422 950.1975,-479.98 1025.6438,-506.7463"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1024.618,-510.0963 1035.2127,-510.1547 1026.9669,-503.5021 1024.618,-510.0963"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes -->
|
||||
<g id="node12" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes</title>
|
||||
<g id="a_node12"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes | defined in certificate.go:100 at certificate.go:104: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:101: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes] at certificate.go:102: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes] at certificate.go:106: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:103: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M543.0641,-538C543.0641,-538 511.2911,-538 511.2911,-538 505.2911,-538 499.2911,-532 499.2911,-526 499.2911,-526 499.2911,-514 499.2911,-514 499.2911,-508 505.2911,-502 511.2911,-502 511.2911,-502 543.0641,-502 543.0641,-502 549.0641,-502 555.0641,-508 555.0641,-514 555.0641,-514 555.0641,-526 555.0641,-526 555.0641,-532 549.0641,-538 543.0641,-538"/>
|
||||
<text text-anchor="middle" x="527.1776" y="-515.8" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data -->
|
||||
<g id="node13" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data</title>
|
||||
<g id="a_node13"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data | defined in certificate.go:134 at certificate.go:138: calling [(*github.com/go-i2p/logger.Logger).Warn] at certificate.go:144: calling [(*github.com/sirupsen/logrus.Logger).Debug] at certificate.go:135: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length] at certificate.go:142: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M670.1208,-538C670.1208,-538 640.1208,-538 640.1208,-538 634.1208,-538 628.1208,-532 628.1208,-526 628.1208,-526 628.1208,-514 628.1208,-514 628.1208,-508 634.1208,-502 640.1208,-502 640.1208,-502 670.1208,-502 670.1208,-502 676.1208,-502 682.1208,-508 682.1208,-514 682.1208,-514 682.1208,-526 682.1208,-526 682.1208,-532 676.1208,-538 670.1208,-538"/>
|
||||
<text text-anchor="middle" x="655.1208" y="-515.8" font-family="Verdana" font-size="14.00" fill="#000000">Data</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data -->
|
||||
<g id="edge32" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data</title>
|
||||
<g id="a_edge32"><a xlink:title="at certificate.go:103: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data]">
|
||||
<path fill="none" stroke="#000000" d="M555.2553,-520C573.6714,-520 597.9555,-520 617.9655,-520"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="617.9862,-523.5001 627.9861,-520 617.9861,-516.5001 617.9862,-523.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge1"><a xlink:title="at certificate.go:104: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M529.9125,-538.0109C538.4723,-586.9966 569.4835,-719 655.1208,-719 655.1208,-719 655.1208,-719 838.2555,-719 896.6494,-719 963.4583,-723.453 1008.8298,-727.1466"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1008.7727,-730.6539 1019.0281,-727.9935 1009.3521,-723.6779 1008.7727,-730.6539"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge27"><a xlink:title="at certificate.go:106: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M535.3242,-501.8239C552.2462,-467.1555 594.7211,-395 655.1208,-395 655.1208,-395 655.1208,-395 718.6208,-395 830.9451,-395 958.5435,-353.5187 1022.0321,-329.926"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1023.5331,-333.1008 1031.659,-326.3022 1021.067,-326.5495 1023.5331,-333.1008"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes -->
|
||||
<g id="node22" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes</title>
|
||||
<g id="a_node22"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes | defined in integer.go:27">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1078.2536,-477C1078.2536,-477 1046.4806,-477 1046.4806,-477 1040.4806,-477 1034.4806,-471 1034.4806,-465 1034.4806,-465 1034.4806,-453 1034.4806,-453 1034.4806,-447 1040.4806,-441 1046.4806,-441 1046.4806,-441 1078.2536,-441 1078.2536,-441 1084.2536,-441 1090.2536,-447 1090.2536,-453 1090.2536,-453 1090.2536,-465 1090.2536,-465 1090.2536,-471 1084.2536,-477 1078.2536,-477"/>
|
||||
<text text-anchor="middle" x="1062.3671" y="-463.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="1062.3671" y="-446.4" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes</title>
|
||||
<g id="a_edge25"><a xlink:title="at certificate.go:101: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes] at certificate.go:102: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes]">
|
||||
<path fill="none" stroke="#8b4513" d="M555.1926,-504.3634C580.5012,-491.7165 619.1824,-476 655.1208,-476 655.1208,-476 655.1208,-476 838.2555,-476 903.8206,-476 979.867,-468.6762 1024.3892,-463.6427"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1024.9341,-467.1032 1034.4676,-462.4812 1024.1326,-460.1492 1024.9341,-467.1032"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length</title>
|
||||
<g id="a_edge26"><a xlink:title="at certificate.go:135: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length]">
|
||||
<path fill="none" stroke="#000000" d="M682.143,-520C712.169,-520 761.0347,-520 796.0998,-520"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="796.503,-523.5001 806.5029,-520 796.5029,-516.5001 796.503,-523.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge31" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge31"><a xlink:title="at certificate.go:142: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M662.5733,-538.0526C676.177,-568.6482 708.0373,-630.4325 755.1208,-662 765.7096,-669.0994 923.8065,-702.9794 1008.9624,-720.8715"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1008.4652,-724.3433 1018.9709,-722.9713 1009.9026,-717.4924 1008.4652,-724.3433"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data->(*github.com/go-i2p/logger.Logger).Warn -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data->(*github.com/go-i2p/logger.Logger).Warn</title>
|
||||
<g id="a_edge14"><a xlink:title="at certificate.go:138: calling [(*github.com/go-i2p/logger.Logger).Warn]">
|
||||
<path fill="none" stroke="#8b4513" d="M660.6886,-538.1788C672.3115,-572.9981 702.5344,-649.1699 755.1208,-689 837.4468,-751.3554 959.4954,-777.7431 1022.106,-787.6955"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1021.9424,-791.211 1032.3563,-789.2615 1022.9997,-784.2913 1021.9424,-791.211"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge15"><a xlink:title="at certificate.go:144: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M682.1656,-509.4896C730.9543,-490.2072 836.5157,-447.009 921.3902,-402 958.6511,-382.2405 999.3255,-356.3539 1027.366,-337.7802"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1029.6243,-340.4813 1036.0057,-332.0238 1025.743,-334.6558 1029.6243,-340.4813"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).length -->
|
||||
<g id="node14" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).length</title>
|
||||
<g id="a_node14"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).length | defined in certificate.go:110 at certificate.go:111: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M383.1355,-538C383.1355,-538 348.1439,-538 348.1439,-538 342.1439,-538 336.1439,-532 336.1439,-526 336.1439,-526 336.1439,-514 336.1439,-514 336.1439,-508 342.1439,-502 348.1439,-502 348.1439,-502 383.1355,-502 383.1355,-502 389.1355,-502 395.1355,-508 395.1355,-514 395.1355,-514 395.1355,-526 395.1355,-526 395.1355,-532 389.1355,-538 383.1355,-538"/>
|
||||
<text text-anchor="middle" x="365.6397" y="-515.8" font-family="Verdana" font-size="14.00" fill="#000000">length</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).length->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).length->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes</title>
|
||||
<g id="a_edge7"><a xlink:title="at certificate.go:111: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes]">
|
||||
<path fill="none" stroke="#000000" d="M395.2682,-520C421.6326,-520 460.3466,-520 489.0205,-520"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="489.0889,-523.5001 499.0889,-520 489.0888,-516.5001 489.0889,-523.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge33" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge33"><a xlink:title="at certificate.go:118: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M392.8854,-405.4307C405.0472,-410.1699 418.3791,-417.6229 426.2344,-429 508.5551,-548.228 369.8577,-641.3821 462.2344,-753 481.4902,-776.2666 496.9762,-773 527.1776,-773 527.1776,-773 527.1776,-773 838.2555,-773 897.4598,-773 964.0466,-758.9838 1009.1435,-747.3416"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1010.2151,-750.6788 1018.9943,-744.7479 1008.4327,-743.9095 1010.2151,-750.6788"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge11"><a xlink:title="at certificate.go:120: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M392.7503,-388.5653C404.0291,-383.6871 416.6888,-376.869 426.2344,-368 449.2966,-346.5723 437.5241,-326.5042 462.2344,-307 485.9407,-288.2882 496.9762,-287 527.1776,-287 527.1776,-287 527.1776,-287 838.2555,-287 902.7902,-287 977.0323,-298.1719 1021.7903,-306.143"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1021.2301,-309.5984 1031.6944,-307.9407 1022.4802,-302.711 1021.2301,-309.5984"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge10"><a xlink:title="at certificate.go:117: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M392.7931,-389.8024C424.6635,-380.9199 479.2568,-368 527.1776,-368 527.1776,-368 527.1776,-368 838.2555,-368 926.3206,-368 921.2143,-441.0025 994.3902,-490 1003.9919,-496.4291 1015.1971,-502.0322 1025.7081,-506.6001"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1024.5221,-509.8973 1035.0999,-510.4981 1027.2055,-503.432 1024.5221,-509.8973"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes -->
|
||||
<g id="node16" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes</title>
|
||||
<g id="a_node16"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes | defined in certificate.go:76 at certificate.go:80: calling [(*github.com/go-i2p/logger.Logger).WithFields] at certificate.go:77: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes] at certificate.go:78: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes] at certificate.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M394.1852,-355C394.1852,-355 337.0942,-355 337.0942,-355 331.0942,-355 325.0942,-349 325.0942,-343 325.0942,-343 325.0942,-331 325.0942,-331 325.0942,-325 331.0942,-319 337.0942,-319 337.0942,-319 394.1852,-319 394.1852,-319 400.1852,-319 406.1852,-325 406.1852,-331 406.1852,-331 406.1852,-343 406.1852,-343 406.1852,-349 400.1852,-355 394.1852,-355"/>
|
||||
<text text-anchor="middle" x="365.6397" y="-332.8" font-family="Verdana" font-size="14.00" fill="#000000">RawBytes</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge5"><a xlink:title="at certificate.go:80: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M406.2658,-351.7653C413.7563,-356.0336 420.8884,-361.3814 426.2344,-368 535.4971,-503.2716 353.2904,-746 527.1776,-746 527.1776,-746 527.1776,-746 838.2555,-746 896.665,-746 963.4713,-741.2044 1008.8379,-737.2267"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1009.3865,-740.6917 1019.035,-736.3147 1008.7629,-733.7195 1009.3865,-740.6917"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge29"><a xlink:title="at certificate.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M406.2343,-326.7314C413.3846,-323.7232 420.3965,-319.8824 426.2344,-315 450.677,-294.5581 440.8621,-276.6333 462.2344,-253 486.1323,-226.5738 491.5482,-206 527.1776,-206 527.1776,-206 527.1776,-206 838.2555,-206 895.5894,-206 911.0429,-220.6671 958.3902,-253 977.8704,-266.3028 974.5202,-279.2867 994.3902,-292 1002.6878,-297.309 1012.3789,-301.4413 1021.8004,-304.616"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1020.8641,-307.9898 1031.4513,-307.5869 1022.9237,-301.2996 1020.8641,-307.9898"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes</title>
|
||||
<g id="a_edge13"><a xlink:title="at certificate.go:77: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes] at certificate.go:78: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Bytes]">
|
||||
<path fill="none" stroke="#8b4513" d="M406.3953,-323.1598C413.0929,-320.6131 419.9087,-317.8521 426.2344,-315 472.8101,-294.0003 476.0867,-260 527.1776,-260 527.1776,-260 527.1776,-260 838.2555,-260 940.5999,-260 1017.9747,-377.4734 1048.3334,-431.9054"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="1045.4271,-433.8864 1053.2885,-440.9891 1051.5723,-430.5342 1045.4271,-433.8864"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 61 KiB |
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
|
||||

|
||||
|
||||
Package data implements common data structures used in higher level structures.
|
||||
|
||||
## Usage
|
||||
@ -22,6 +24,16 @@ const STRING_MAX_SIZE = 255
|
||||
STRING_MAX_SIZE is the maximum number of bytes that can be stored in an I2P
|
||||
string
|
||||
|
||||
```go
|
||||
var (
|
||||
ErrZeroLength = oops.Errorf("error parsing string: zero length")
|
||||
ErrDataTooShort = oops.Errorf("string parsing warning: string data is shorter than specified by length")
|
||||
ErrDataTooLong = oops.Errorf("string parsing warning: string contains data beyond length")
|
||||
ErrLengthMismatch = oops.Errorf("error reading I2P string, length does not match data")
|
||||
ErrMappingLengthMismatch = oops.Errorf("warning parsing mapping: mapping length exceeds provided data")
|
||||
)
|
||||
```
|
||||
|
||||
#### func PrintErrors
|
||||
|
||||
```go
|
||||
@ -207,7 +219,7 @@ Bytes returns the raw []byte content of an Integer.
|
||||
```go
|
||||
func (i Integer) Int() int
|
||||
```
|
||||
Int returns the Date as a Go integer
|
||||
Int returns the Integer as a Go integer
|
||||
|
||||
#### type Mapping
|
||||
|
||||
@ -295,3 +307,9 @@ occurred during parsing.
|
||||
```go
|
||||
func (m MappingValues) Get(key I2PString) I2PString
|
||||
```
|
||||
|
||||
|
||||
|
||||
data
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/data
|
1306
lib/common/data/data.svg
Normal file
After Width: | Height: | Size: 139 KiB |
@ -2,10 +2,10 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -57,7 +57,7 @@ func ReadDate(data []byte) (date Date, remainder []byte, err error) {
|
||||
log.WithFields(logrus.Fields{
|
||||
"data": data,
|
||||
}).Error("ReadDate: data is too short")
|
||||
err = errors.New("ReadDate: data is too short")
|
||||
err = oops.Errorf("ReadDate: data is too short")
|
||||
return
|
||||
}
|
||||
copy(date[:], data[:8])
|
||||
|
@ -1,23 +1,24 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/samber/oops"
|
||||
)
|
||||
|
||||
var (
|
||||
ErrZeroLength = errors.New("error parsing string: zero length")
|
||||
ErrDataTooShort = errors.New("string parsing warning: string data is shorter than specified by length")
|
||||
ErrDataTooLong = errors.New("string parsing warning: string contains data beyond length")
|
||||
ErrLengthMismatch = errors.New("error reading I2P string, length does not match data")
|
||||
ErrMappingLengthMismatch = errors.New("warning parsing mapping: mapping length exceeds provided data")
|
||||
ErrZeroLength = fmt.Errorf("error parsing string: zero length")
|
||||
ErrDataTooShort = fmt.Errorf("string parsing warning: string data is shorter than specified by length")
|
||||
ErrDataTooLong = fmt.Errorf("string parsing warning: string contains data beyond length")
|
||||
ErrLengthMismatch = fmt.Errorf("error reading I2P string, length does not match data")
|
||||
ErrMappingLengthMismatch = fmt.Errorf("warning parsing mapping: mapping length exceeds provided data")
|
||||
)
|
||||
|
||||
// WrapErrors compiles a slice of errors and returns them wrapped together as a single error.
|
||||
func WrapErrors(errs []error) error {
|
||||
var err error
|
||||
for i, e := range errs {
|
||||
err = fmt.Errorf("%v\n\t%d: %v", err, i, e)
|
||||
err = oops.Errorf("%v\n\t%d: %v", err, i, e)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
@ -1,8 +1,7 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -164,7 +163,7 @@ func ReadMapping(bytes []byte) (mapping Mapping, remainder []byte, err []error)
|
||||
"at": "ReadMapping",
|
||||
"reason": "zero length",
|
||||
}).Warn("mapping format violation")
|
||||
e := errors.New("zero length")
|
||||
e := oops.Errorf("zero length")
|
||||
err = append(err, e)
|
||||
return
|
||||
}
|
||||
@ -184,7 +183,7 @@ func ReadMapping(bytes []byte) (mapping Mapping, remainder []byte, err []error)
|
||||
"expected_size": size.Int(),
|
||||
"actual_size": len(remainder),
|
||||
}).Warn("mapping format violation: mapping length exceeds provided data")
|
||||
e := errors.New("warning parsing mapping: mapping length exceeds provided data")
|
||||
e := oops.Errorf("warning parsing mapping: mapping length exceeds provided data")
|
||||
err = append(err, e)
|
||||
|
||||
// Use whatever data is available (recovery)
|
||||
@ -209,7 +208,7 @@ func ReadMapping(bytes []byte) (mapping Mapping, remainder []byte, err []error)
|
||||
"at": "ReadMapping",
|
||||
"reason": "error parsing mapping values",
|
||||
}).Warn("mapping format violation")
|
||||
e := errors.New("error parsing mapping values")
|
||||
e := oops.Errorf("error parsing mapping values")
|
||||
err = append(err, e)
|
||||
}
|
||||
if len(remainder) > 0 { // Handle extra bytes beyond mapping length
|
||||
@ -217,7 +216,7 @@ func ReadMapping(bytes []byte) (mapping Mapping, remainder []byte, err []error)
|
||||
"expected_size": size.Int(),
|
||||
"actual_size": len(remainder),
|
||||
}).Error("mapping format violation: data exists beyond length of mapping")
|
||||
e := errors.New("warning parsing mapping: data exists beyond length of mapping")
|
||||
e := oops.Errorf("warning parsing mapping: data exists beyond length of mapping")
|
||||
err = append(err, e)
|
||||
|
||||
// Slice the exact mapping bytes
|
||||
|
@ -2,9 +2,9 @@ package data
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@ -154,7 +154,7 @@ func TestFullGoMapToMappingProducesCorrectMapping(t *testing.T) {
|
||||
func TestStopValueReadTrueWhenCorrectErr(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
status := stopValueRead(errors.New("error parsing string: zero length"))
|
||||
status := stopValueRead(oops.Errorf("error parsing string: zero length"))
|
||||
|
||||
assert.Equal(true, status, "stopValueRead() did not return true when String error found")
|
||||
}
|
||||
@ -162,7 +162,7 @@ func TestStopValueReadTrueWhenCorrectErr(t *testing.T) {
|
||||
func TestStopValueReadFalseWhenWrongErr(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
status := stopValueRead(errors.New("something else"))
|
||||
status := stopValueRead(oops.Errorf("something else"))
|
||||
|
||||
assert.Equal(false, status, "stopValueRead() did not return false when non String error found")
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"sort"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -90,7 +90,7 @@ func ReadMappingValues(remainder []byte, map_length Integer) (values *MappingVal
|
||||
"at": "(Mapping) Values",
|
||||
"reason": "data shorter than expected",
|
||||
}).Error("mapping contained no data")
|
||||
errs = []error{errors.New("mapping contained no data")}
|
||||
errs = []error{oops.Errorf("mapping contained no data")}
|
||||
return
|
||||
}
|
||||
map_values := make(MappingValues, 0)
|
||||
@ -103,7 +103,7 @@ func ReadMappingValues(remainder []byte, map_length Integer) (values *MappingVal
|
||||
"mapping_length_field": int_map_length,
|
||||
"reason": "data longer than expected",
|
||||
}).Warn("mapping format warning")
|
||||
errs = append(errs, errors.New("warning parsing mapping: data exists beyond length of mapping"))
|
||||
errs = append(errs, oops.Errorf("warning parsing mapping: data exists beyond length of mapping"))
|
||||
} else if int_map_length > mapping_len {
|
||||
log.WithFields(logrus.Fields{
|
||||
"at": "(Mapping) Values",
|
||||
@ -111,7 +111,7 @@ func ReadMappingValues(remainder []byte, map_length Integer) (values *MappingVal
|
||||
"mapping_length_field": int_map_length,
|
||||
"reason": "data shorter than expected",
|
||||
}).Warn("mapping format warning")
|
||||
errs = append(errs, errors.New("warning parsing mapping: mapping length exceeds provided data"))
|
||||
errs = append(errs, oops.Errorf("warning parsing mapping: mapping length exceeds provided data"))
|
||||
}
|
||||
|
||||
encounteredKeysMap := map[string]bool{}
|
||||
@ -158,7 +158,7 @@ func ReadMappingValues(remainder []byte, map_length Integer) (values *MappingVal
|
||||
"key": string(key_str),
|
||||
}).Error("mapping format violation")
|
||||
log.Printf("DUPE: %s", key_str)
|
||||
errs = append(errs, errors.New("mapping format violation, duplicate key in mapping"))
|
||||
errs = append(errs, oops.Errorf("mapping format violation, duplicate key in mapping"))
|
||||
// Based on other implementations this does not seem to happen often?
|
||||
// Java throws an exception in this case, the base object is a Hashmap so the value is overwritten and an exception is thrown.
|
||||
// i2pd as far as I can tell just overwrites the original value
|
||||
@ -171,7 +171,7 @@ func ReadMappingValues(remainder []byte, map_length Integer) (values *MappingVal
|
||||
"reason": "expected =",
|
||||
"value:": string(remainder),
|
||||
}).Warn("mapping format violation")
|
||||
errs = append(errs, errors.New("mapping format violation, expected ="))
|
||||
errs = append(errs, oops.Errorf("mapping format violation, expected ="))
|
||||
log.Printf("ERRVAL: %s", remainder)
|
||||
break
|
||||
} else {
|
||||
@ -197,7 +197,7 @@ func ReadMappingValues(remainder []byte, map_length Integer) (values *MappingVal
|
||||
"reason": "expected ;",
|
||||
"value:": string(remainder),
|
||||
}).Warn("mapping format violation")
|
||||
errs = append(errs, errors.New("mapping format violation, expected ;"))
|
||||
errs = append(errs, oops.Errorf("mapping format violation, expected ;"))
|
||||
break
|
||||
} else {
|
||||
remainder = remainder[1:]
|
||||
|
@ -1,8 +1,7 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -124,7 +123,7 @@ func ToI2PString(data string) (str I2PString, err error) {
|
||||
"max_len": STRING_MAX_SIZE,
|
||||
"reason": "too much data",
|
||||
}).Error("cannot create I2P string")
|
||||
err = errors.New("cannot store that much data in I2P string")
|
||||
err = oops.Errorf("cannot store that much data in I2P string")
|
||||
return
|
||||
}
|
||||
i2p_string := []byte{byte(data_len)}
|
||||
|
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/destination"
|
||||
|
||||

|
||||
|
||||
Package destination implements the I2P Destination common data structure
|
||||
|
||||
## Usage
|
||||
@ -40,3 +42,9 @@ Base32Address returns the I2P base32 address for this Destination.
|
||||
func (destination Destination) Base64() string
|
||||
```
|
||||
Base64 returns the I2P base64 address for this Destination.
|
||||
|
||||
|
||||
|
||||
destination
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/destination
|
@ -4,7 +4,7 @@ package destination
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
|
||||
@ -31,7 +31,7 @@ Identical to KeysAndCert.
|
||||
//
|
||||
// https://geti2p.net/spec/common-structures#destination
|
||||
type Destination struct {
|
||||
KeysAndCert
|
||||
*KeysAndCert
|
||||
}
|
||||
|
||||
// Base32Address returns the I2P base32 address for this Destination.
|
||||
|
300
lib/common/destination/destination.svg
Normal file
@ -0,0 +1,300 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="357pt" height="609pt"
|
||||
viewBox="0.00 0.00 356.94 609.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 609)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-609 356.9356,-609 356.9356,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-601 348.9356,-601 348.9356,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="178.4678" y="-580.8" font-family="Arial" font-size="18.00" fill="#000000">destination</text>
|
||||
</g>
|
||||
<g id="clust6" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/destination.Destination</title>
|
||||
<g id="a_clust6"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/destination.Destination">
|
||||
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M28,-295C28,-295 131.0814,-295 131.0814,-295 137.0814,-295 143.0814,-301 143.0814,-307 143.0814,-307 143.0814,-422 143.0814,-422 143.0814,-428 137.0814,-434 131.0814,-434 131.0814,-434 28,-434 28,-434 22,-434 16,-428 16,-422 16,-422 16,-307 16,-307 16,-301 22,-295 28,-295"/>
|
||||
<text text-anchor="middle" x="79.5407" y="-303.5" font-family="Arial" font-size="15.00" fill="#222222">(Destination)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
|
||||
<g id="a_clust5"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M249.4047,-121C249.4047,-121 303.7259,-121 303.7259,-121 309.7259,-121 315.7259,-127 315.7259,-133 315.7259,-133 315.7259,-187 315.7259,-187 315.7259,-193 309.7259,-199 303.7259,-199 303.7259,-199 249.4047,-199 249.4047,-199 243.4047,-199 237.4047,-193 237.4047,-187 237.4047,-187 237.4047,-133 237.4047,-133 237.4047,-127 243.4047,-121 249.4047,-121"/>
|
||||
<text text-anchor="middle" x="276.5653" y="-129.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/logger.Logger</title>
|
||||
<g id="a_clust4"><a xlink:title="type: *github.com/go-i2p/logger.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M236.9559,-260C236.9559,-260 315.1747,-260 315.1747,-260 321.1747,-260 327.1747,-266 327.1747,-272 327.1747,-272 327.1747,-326 327.1747,-326 327.1747,-332 321.1747,-338 315.1747,-338 315.1747,-338 236.9559,-338 236.9559,-338 230.9559,-338 224.9559,-332 224.9559,-326 224.9559,-326 224.9559,-272 224.9559,-272 224.9559,-266 230.9559,-260 236.9559,-260"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-268.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M227.6382,-432C227.6382,-432 324.4924,-432 324.4924,-432 330.4924,-432 336.4924,-438 336.4924,-444 336.4924,-444 336.4924,-498 336.4924,-498 336.4924,-504 330.4924,-510 324.4924,-510 324.4924,-510 227.6382,-510 227.6382,-510 221.6382,-510 215.6382,-504 215.6382,-498 215.6382,-498 215.6382,-444 215.6382,-444 215.6382,-438 221.6382,-432 227.6382,-432"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-440.5" font-family="Arial" font-size="15.00" fill="#222222">(*KeysAndCert)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/common/certificate.Certificate">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M239.087,-346C239.087,-346 314.0436,-346 314.0436,-346 320.0436,-346 326.0436,-352 326.0436,-358 326.0436,-358 326.0436,-412 326.0436,-412 326.0436,-418 320.0436,-424 314.0436,-424 314.0436,-424 239.087,-424 239.087,-424 233.087,-424 227.087,-418 227.087,-412 227.087,-412 227.087,-358 227.087,-358 227.087,-352 233.087,-346 239.087,-346"/>
|
||||
<text text-anchor="middle" x="276.5653" y="-354.5" font-family="Arial" font-size="15.00" fill="#222222">(*Certificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination | defined in destination.go:72 at destination.go:77: calling [github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert] at destination.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug] at destination.go:84: calling [(*github.com/sirupsen/logrus.Logger).Debug] at destination.go:73: calling [(*github.com/go-i2p/logger.Logger).WithFields] at destination.go:82: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M126.3497,-191C126.3497,-191 32.7317,-191 32.7317,-191 26.7317,-191 20.7317,-185 20.7317,-179 20.7317,-179 20.7317,-167 20.7317,-167 20.7317,-161 26.7317,-155 32.7317,-155 32.7317,-155 126.3497,-155 126.3497,-155 132.3497,-155 138.3497,-161 138.3497,-167 138.3497,-167 138.3497,-179 138.3497,-179 138.3497,-185 132.3497,-191 126.3497,-191"/>
|
||||
<text text-anchor="middle" x="79.5407" y="-168.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadDestination</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M328.8062,-113C328.8062,-113 223.3244,-113 223.3244,-113 217.3244,-113 211.3244,-107 211.3244,-101 211.3244,-101 211.3244,-89 211.3244,-89 211.3244,-83 217.3244,-77 223.3244,-77 223.3244,-77 328.8062,-77 328.8062,-77 334.8062,-77 340.8062,-83 340.8062,-89 340.8062,-89 340.8062,-101 340.8062,-101 340.8062,-107 334.8062,-113 328.8062,-113"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
|
||||
<text text-anchor="middle" x="276.0653" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCert</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination->github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination->github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
|
||||
<g id="a_edge1"><a xlink:title="at destination.go:77: calling [github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
|
||||
<path fill="none" stroke="#8b4513" d="M119.8466,-154.9251C145.7433,-143.5438 180.215,-128.8228 211.195,-117 211.5179,-116.8768 211.8418,-116.7535 212.1667,-116.6302"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="213.6372,-119.8181 221.8003,-113.0642 211.2071,-113.2534 213.6372,-119.8181"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="node9" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_node9"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithFields | defined in log.go:60">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M307.2844,-330C307.2844,-330 244.8462,-330 244.8462,-330 238.8462,-330 232.8462,-324 232.8462,-318 232.8462,-318 232.8462,-306 232.8462,-306 232.8462,-300 238.8462,-294 244.8462,-294 244.8462,-294 307.2844,-294 307.2844,-294 313.2844,-294 319.2844,-300 319.2844,-306 319.2844,-306 319.2844,-318 319.2844,-318 319.2844,-324 313.2844,-330 307.2844,-330"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-316.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="276.0653" y="-299.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge13"><a xlink:title="at destination.go:73: calling [(*github.com/go-i2p/logger.Logger).WithFields] at destination.go:82: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M95.6552,-191.3454C118.8737,-216.761 164.144,-262.6371 211.195,-290 215.0581,-292.2466 219.1849,-294.3077 223.4146,-296.1894"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="222.196,-299.4724 232.7765,-300.0243 224.8495,-292.9948 222.196,-299.4724"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="node10" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_node10"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M294.8873,-191C294.8873,-191 257.2433,-191 257.2433,-191 251.2433,-191 245.2433,-185 245.2433,-179 245.2433,-179 245.2433,-167 245.2433,-167 245.2433,-161 251.2433,-155 257.2433,-155 257.2433,-155 294.8873,-155 294.8873,-155 300.8873,-155 306.8873,-161 306.8873,-167 306.8873,-167 306.8873,-179 306.8873,-179 306.8873,-185 300.8873,-191 294.8873,-191"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="276.0653" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge4"><a xlink:title="at destination.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug] at destination.go:84: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M138.2384,-173C169.429,-173 207.0043,-173 235.0381,-173"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="235.282,-176.5001 245.282,-173 235.2819,-169.5001 235.282,-176.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/destination.init -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/destination.init</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/destination.init | defined in .:0 at destination.go:17: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M94.5407,-52C94.5407,-52 64.5407,-52 64.5407,-52 58.5407,-52 52.5407,-46 52.5407,-40 52.5407,-40 52.5407,-28 52.5407,-28 52.5407,-22 58.5407,-16 64.5407,-16 64.5407,-16 94.5407,-16 94.5407,-16 100.5407,-16 106.5407,-22 106.5407,-28 106.5407,-28 106.5407,-40 106.5407,-40 106.5407,-46 100.5407,-52 94.5407,-52"/>
|
||||
<text text-anchor="middle" x="79.5407" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/logger.GetGoI2PLogger | defined in log.go:120">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M324.7548,-52C324.7548,-52 227.3758,-52 227.3758,-52 221.3758,-52 215.3758,-46 215.3758,-40 215.3758,-40 215.3758,-28 215.3758,-28 215.3758,-22 221.3758,-16 227.3758,-16 227.3758,-16 324.7548,-16 324.7548,-16 330.7548,-16 336.7548,-22 336.7548,-28 336.7548,-28 336.7548,-40 336.7548,-40 336.7548,-46 330.7548,-52 324.7548,-52"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="276.0653" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/destination.init->github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/destination.init->github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_edge14"><a xlink:title="at destination.go:17: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="none" stroke="#8b4513" d="M106.8666,-34C132.1954,-34 170.9888,-34 205.043,-34"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="205.4392,-37.5001 215.4392,-34 205.4392,-30.5001 205.4392,-37.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/base32.EncodeToString -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/base32.EncodeToString</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/base32.EncodeToString | defined in base32.go:16">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M321.8244,-563C321.8244,-563 230.3062,-563 230.3062,-563 224.3062,-563 218.3062,-557 218.3062,-551 218.3062,-551 218.3062,-539 218.3062,-539 218.3062,-533 224.3062,-527 230.3062,-527 230.3062,-527 321.8244,-527 321.8244,-527 327.8244,-527 333.8244,-533 333.8244,-539 333.8244,-539 333.8244,-551 333.8244,-551 333.8244,-557 327.8244,-563 321.8244,-563"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-549.2" font-family="Verdana" font-size="14.00" fill="#000000">base32</text>
|
||||
<text text-anchor="middle" x="276.0653" y="-532.4" font-family="Verdana" font-size="14.00" fill="#000000">EncodeToString</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/base64.EncodeToString -->
|
||||
<g id="node6" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/base64.EncodeToString</title>
|
||||
<g id="a_node6"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/base64.EncodeToString | defined in base64.go:16">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M321.8244,-252C321.8244,-252 230.3062,-252 230.3062,-252 224.3062,-252 218.3062,-246 218.3062,-240 218.3062,-240 218.3062,-228 218.3062,-228 218.3062,-222 224.3062,-216 230.3062,-216 230.3062,-216 321.8244,-216 321.8244,-216 327.8244,-216 333.8244,-222 333.8244,-228 333.8244,-228 333.8244,-240 333.8244,-240 333.8244,-246 327.8244,-252 321.8244,-252"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">base64</text>
|
||||
<text text-anchor="middle" x="276.0653" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">EncodeToString</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes -->
|
||||
<g id="node7" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes</title>
|
||||
<g id="a_node7"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes | defined in certificate.go:100">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M304.0219,-416C304.0219,-416 248.1087,-416 248.1087,-416 242.1087,-416 236.1087,-410 236.1087,-404 236.1087,-404 236.1087,-392 236.1087,-392 236.1087,-386 242.1087,-380 248.1087,-380 248.1087,-380 304.0219,-380 304.0219,-380 310.0219,-380 316.0219,-386 316.0219,-392 316.0219,-392 316.0219,-404 316.0219,-404 316.0219,-410 310.0219,-416 304.0219,-416"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-402.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="276.0653" y="-385.4" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
|
||||
<g id="node8" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
|
||||
<g id="a_node8"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate | defined in keys_and_cert.go:136">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M316.4196,-502C316.4196,-502 235.711,-502 235.711,-502 229.711,-502 223.711,-496 223.711,-490 223.711,-490 223.711,-478 223.711,-478 223.711,-472 229.711,-466 235.711,-466 235.711,-466 316.4196,-466 316.4196,-466 322.4196,-466 328.4196,-472 328.4196,-478 328.4196,-478 328.4196,-490 328.4196,-490 328.4196,-496 322.4196,-502 316.4196,-502"/>
|
||||
<text text-anchor="middle" x="276.0653" y="-488.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
|
||||
<text text-anchor="middle" x="276.0653" y="-471.4" font-family="Verdana" font-size="14.00" fill="#000000">Certificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address -->
|
||||
<g id="node11" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address</title>
|
||||
<g id="a_node11"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address | defined in destination.go:38 at destination.go:42: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes] at destination.go:41: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate] at destination.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug] at destination.go:49: calling [(*github.com/sirupsen/logrus.Logger).Debug] at destination.go:44: calling [github.com/go-i2p/go-i2p/lib/common/base32.EncodeToString] at destination.go:47: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M123.1221,-426C123.1221,-426 35.9593,-426 35.9593,-426 29.9593,-426 23.9593,-420 23.9593,-414 23.9593,-414 23.9593,-402 23.9593,-402 23.9593,-396 29.9593,-390 35.9593,-390 35.9593,-390 123.1221,-390 123.1221,-390 129.1221,-390 135.1221,-396 135.1221,-402 135.1221,-402 135.1221,-414 135.1221,-414 135.1221,-420 129.1221,-426 123.1221,-426"/>
|
||||
<text text-anchor="middle" x="79.5407" y="-403.8" font-family="Verdana" font-size="14.00" fill="#000000">Base32Address</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->github.com/go-i2p/go-i2p/lib/common/base32.EncodeToString -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->github.com/go-i2p/go-i2p/lib/common/base32.EncodeToString</title>
|
||||
<g id="a_edge9"><a xlink:title="at destination.go:44: calling [github.com/go-i2p/go-i2p/lib/common/base32.EncodeToString]">
|
||||
<path fill="none" stroke="#8b4513" d="M98.3658,-426.2155C122.8623,-449.2395 167.6924,-489.1061 211.195,-516 214.7364,-518.1894 218.4716,-520.3055 222.2878,-522.3296"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="220.7827,-525.4905 231.2865,-526.8769 223.9399,-519.2429 220.7827,-525.4905"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes</title>
|
||||
<g id="a_edge2"><a xlink:title="at destination.go:42: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes]">
|
||||
<path fill="none" stroke="#8b4513" d="M135.3003,-423.7554C148.355,-425.819 162.2348,-426.7045 175.195,-425 192.0147,-422.7879 210.016,-418.5853 226.0877,-414.143"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="227.1646,-417.4754 235.8175,-411.3617 225.2406,-410.745 227.1646,-417.4754"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
|
||||
<g id="a_edge5"><a xlink:title="at destination.go:41: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M126.1143,-426.0109C154.2801,-436.9032 190.3668,-450.8587 220.0806,-462.3496"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="218.8966,-465.6443 229.4859,-465.9868 221.4214,-459.1155 218.8966,-465.6443"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge10"><a xlink:title="at destination.go:47: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M135.4607,-410.5532C149.2676,-408.9965 163.4512,-405.3584 175.195,-398 200.9047,-381.8908 188.214,-359.8083 211.195,-340 215.0451,-336.6814 219.3484,-333.7036 223.8574,-331.0431"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="225.5446,-334.1099 232.7168,-326.3118 222.247,-327.9353 225.5446,-334.1099"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge8"><a xlink:title="at destination.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug] at destination.go:49: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M128.4239,-389.9118C133.8188,-386.5287 138.8725,-382.5818 143.0814,-378 201.7913,-314.0883 148.9351,-255.4587 211.195,-195 217.9616,-188.4291 226.762,-183.8181 235.6865,-180.5832"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="236.8188,-183.8965 245.3289,-177.5856 234.7406,-177.2121 236.8188,-183.8965"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64 -->
|
||||
<g id="node12" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64</title>
|
||||
<g id="a_node12"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64 | defined in destination.go:55 at destination.go:59: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes] at destination.go:58: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate] at destination.go:60: calling [github.com/go-i2p/go-i2p/lib/common/base64.EncodeToString] at destination.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug] at destination.go:64: calling [(*github.com/sirupsen/logrus.Logger).Debug] at destination.go:62: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M100.2514,-365C100.2514,-365 58.83,-365 58.83,-365 52.83,-365 46.83,-359 46.83,-353 46.83,-353 46.83,-341 46.83,-341 46.83,-335 52.83,-329 58.83,-329 58.83,-329 100.2514,-329 100.2514,-329 106.2514,-329 112.2514,-335 112.2514,-341 112.2514,-341 112.2514,-353 112.2514,-353 112.2514,-359 106.2514,-365 100.2514,-365"/>
|
||||
<text text-anchor="middle" x="79.5407" y="-342.8" font-family="Verdana" font-size="14.00" fill="#000000">Base64</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->github.com/go-i2p/go-i2p/lib/common/base64.EncodeToString -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->github.com/go-i2p/go-i2p/lib/common/base64.EncodeToString</title>
|
||||
<g id="a_edge7"><a xlink:title="at destination.go:60: calling [github.com/go-i2p/go-i2p/lib/common/base64.EncodeToString]">
|
||||
<path fill="none" stroke="#8b4513" d="M112.1939,-338.8592C122.5317,-335.4699 133.7005,-330.9153 143.0814,-325 176.9686,-303.632 175.1512,-282.1226 209.631,-257.6621"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="211.6947,-260.4935 218.1081,-252.0603 207.8355,-254.6534 211.6947,-260.4935"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes</title>
|
||||
<g id="a_edge3"><a xlink:title="at destination.go:59: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes]">
|
||||
<path fill="none" stroke="#8b4513" d="M112.2576,-348.1387C130.9214,-349.3528 154.6235,-351.8541 175.195,-357 193.2842,-361.5249 212.4093,-368.65 229.0864,-375.6996"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="228.0292,-379.056 238.5963,-379.8214 230.8129,-372.6333 228.0292,-379.056"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
|
||||
<g id="a_edge6"><a xlink:title="at destination.go:58: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M112.2798,-361.284C122.4063,-366.1451 133.4308,-371.9033 143.0814,-378 163.9636,-391.1922 214.3577,-432.4214 246.7655,-459.4025"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="244.6676,-462.2104 254.5883,-465.9293 249.1521,-456.8354 244.6676,-462.2104"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge12"><a xlink:title="at destination.go:62: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M112.3907,-341.0766C130.5996,-337.7992 153.6485,-333.6603 174.195,-330 190.0047,-327.1835 207.1979,-324.1387 222.8796,-321.3685"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="223.6975,-324.7783 232.9366,-319.5929 222.4804,-317.8849 223.6975,-324.7783"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge11"><a xlink:title="at destination.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug] at destination.go:64: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M112.3191,-341.1468C123.1386,-337.8792 134.5697,-332.8178 143.0814,-325 168.1559,-301.9697 158.3099,-285.1129 174.195,-255 188.8126,-227.2898 186.6888,-214.5186 211.195,-195 218.2916,-189.3477 226.9195,-185.1105 235.5357,-181.9469"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="236.7484,-185.2331 245.1766,-178.8131 234.5844,-178.5759 236.7484,-185.2331"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 28 KiB |
@ -2,6 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/fuzz/certificate"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
@ -10,3 +13,9 @@
|
||||
```go
|
||||
func Fuzz(data []byte) int
|
||||
```
|
||||
|
||||
|
||||
|
||||
exportable
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/fuzz/certificate
|
111
lib/common/fuzz/certificate/exportable.svg
Normal file
@ -0,0 +1,111 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="272pt" height="306pt"
|
||||
viewBox="0.00 0.00 271.84 306.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 306)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-306 271.8444,-306 271.8444,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-298 263.8444,-298 263.8444,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="135.9222" y="-277.8" font-family="Arial" font-size="18.00" fill="#000000">exportable</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/common/certificate.Certificate">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M162.9439,-60C162.9439,-60 237.9005,-60 237.9005,-60 243.9005,-60 249.9005,-66 249.9005,-72 249.9005,-72 249.9005,-248 249.9005,-248 249.9005,-254 243.9005,-260 237.9005,-260 237.9005,-260 162.9439,-260 162.9439,-260 156.9439,-260 150.9439,-254 150.9439,-248 150.9439,-248 150.9439,-72 150.9439,-72 150.9439,-66 156.9439,-60 162.9439,-60"/>
|
||||
<text text-anchor="middle" x="200.4222" y="-68.5" font-family="Arial" font-size="15.00" fill="#222222">(*Certificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz | defined in fuzz.go:5 at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate] at fuzz.go:7: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at fuzz.go:8: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length] at fuzz.go:9: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-160C58,-160 28,-160 28,-160 22,-160 16,-154 16,-148 16,-148 16,-136 16,-136 16,-130 22,-124 28,-124 28,-124 58,-124 58,-124 64,-124 70,-130 70,-136 70,-136 70,-148 70,-148 70,-154 64,-160 58,-160"/>
|
||||
<text text-anchor="middle" x="43" y="-137.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate | defined in certificate.go:201">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M243.7667,-52C243.7667,-52 156.0777,-52 156.0777,-52 150.0777,-52 144.0777,-46 144.0777,-40 144.0777,-40 144.0777,-28 144.0777,-28 144.0777,-22 150.0777,-16 156.0777,-16 156.0777,-16 243.7667,-16 243.7667,-16 249.7667,-16 255.7667,-22 255.7667,-28 255.7667,-28 255.7667,-40 255.7667,-40 255.7667,-46 249.7667,-52 243.7667,-52"/>
|
||||
<text text-anchor="middle" x="199.9222" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="199.9222" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz->github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz->github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate</title>
|
||||
<g id="a_edge1"><a xlink:title="at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M60.5563,-123.8395C78.2431,-106.2965 107.1045,-79.6361 142.3601,-57.393"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="144.2536,-60.3376 150.9601,-52.1355 140.6025,-54.3652 144.2536,-60.3376"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data -->
|
||||
<g id="node3" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data</title>
|
||||
<g id="a_node3"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data | defined in certificate.go:134">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M227.8788,-130C227.8788,-130 171.9656,-130 171.9656,-130 165.9656,-130 159.9656,-124 159.9656,-118 159.9656,-118 159.9656,-106 159.9656,-106 159.9656,-100 165.9656,-94 171.9656,-94 171.9656,-94 227.8788,-94 227.8788,-94 233.8788,-94 239.8788,-100 239.8788,-106 239.8788,-106 239.8788,-118 239.8788,-118 239.8788,-124 233.8788,-130 227.8788,-130"/>
|
||||
<text text-anchor="middle" x="199.9222" y="-116.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="199.9222" y="-99.4" font-family="Verdana" font-size="14.00" fill="#000000">Data</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data</title>
|
||||
<g id="a_edge2"><a xlink:title="at fuzz.go:7: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.3338,-136.7744C92.2913,-132.5766 123.7111,-126.5699 150.1132,-121.5224"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="150.7913,-124.9562 159.9562,-119.6406 149.4768,-118.0807 150.7913,-124.9562"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length -->
|
||||
<g id="node4" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length</title>
|
||||
<g id="a_node4"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length | defined in certificate.go:125">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M227.8788,-191C227.8788,-191 171.9656,-191 171.9656,-191 165.9656,-191 159.9656,-185 159.9656,-179 159.9656,-179 159.9656,-167 159.9656,-167 159.9656,-161 165.9656,-155 171.9656,-155 171.9656,-155 227.8788,-155 227.8788,-155 233.8788,-155 239.8788,-161 239.8788,-167 239.8788,-167 239.8788,-179 239.8788,-179 239.8788,-185 233.8788,-191 227.8788,-191"/>
|
||||
<text text-anchor="middle" x="199.9222" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="199.9222" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">Length</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length</title>
|
||||
<g id="a_edge3"><a xlink:title="at fuzz.go:8: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Length]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.3338,-147.3998C92.2913,-151.7375 123.7111,-157.9445 150.1132,-163.1602"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="149.4674,-166.6002 159.9562,-165.1047 150.8241,-159.7329 149.4674,-166.6002"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type -->
|
||||
<g id="node5" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type</title>
|
||||
<g id="a_node5"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type | defined in certificate.go:116">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M227.8788,-252C227.8788,-252 171.9656,-252 171.9656,-252 165.9656,-252 159.9656,-246 159.9656,-240 159.9656,-240 159.9656,-228 159.9656,-228 159.9656,-222 165.9656,-216 171.9656,-216 171.9656,-216 227.8788,-216 227.8788,-216 233.8788,-216 239.8788,-222 239.8788,-228 239.8788,-228 239.8788,-240 239.8788,-240 239.8788,-246 233.8788,-252 227.8788,-252"/>
|
||||
<text text-anchor="middle" x="199.9222" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="199.9222" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">Type</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/certificate.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type</title>
|
||||
<g id="a_edge4"><a xlink:title="at fuzz.go:9: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.1769,-159.2759C90.3621,-171.9616 118.6668,-189.4457 144,-204 148.084,-206.3463 152.3634,-208.7456 156.6592,-211.1147"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="154.9879,-214.1898 165.4424,-215.9086 158.3415,-208.0455 154.9879,-214.1898"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 9.6 KiB |
@ -2,6 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/fuzz/destination"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
@ -10,3 +13,9 @@
|
||||
```go
|
||||
func Fuzz(data []byte) int
|
||||
```
|
||||
|
||||
|
||||
|
||||
exportable
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/fuzz/destination
|
92
lib/common/fuzz/destination/exportable.svg
Normal file
@ -0,0 +1,92 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="281pt" height="245pt"
|
||||
viewBox="0.00 0.00 281.19 245.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 245)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-245 281.195,-245 281.195,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-237 273.195,-237 273.195,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="140.5975" y="-216.8" font-family="Arial" font-size="18.00" fill="#000000">exportable</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/destination.Destination</title>
|
||||
<g id="a_clust2"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/destination.Destination">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M150.1136,-60C150.1136,-60 253.195,-60 253.195,-60 259.195,-60 265.195,-66 265.195,-72 265.195,-72 265.195,-187 265.195,-187 265.195,-193 259.195,-199 253.195,-199 253.195,-199 150.1136,-199 150.1136,-199 144.1136,-199 138.1136,-193 138.1136,-187 138.1136,-187 138.1136,-72 138.1136,-72 138.1136,-66 144.1136,-60 150.1136,-60"/>
|
||||
<text text-anchor="middle" x="201.6543" y="-68.5" font-family="Arial" font-size="15.00" fill="#222222">(Destination)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/destination.Fuzz -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/destination.Fuzz</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/fuzz/destination.Fuzz | defined in fuzz.go:5 at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination] at fuzz.go:7: calling [(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address] at fuzz.go:8: calling [(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-130C58,-130 28,-130 28,-130 22,-130 16,-124 16,-118 16,-118 16,-106 16,-106 16,-100 22,-94 28,-94 28,-94 58,-94 58,-94 64,-94 70,-100 70,-106 70,-106 70,-118 70,-118 70,-124 64,-130 58,-130"/>
|
||||
<text text-anchor="middle" x="43" y="-107.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination | defined in destination.go:72">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M248.4633,-52C248.4633,-52 154.8453,-52 154.8453,-52 148.8453,-52 142.8453,-46 142.8453,-40 142.8453,-40 142.8453,-28 142.8453,-28 142.8453,-22 148.8453,-16 154.8453,-16 154.8453,-16 248.4633,-16 248.4633,-16 254.4633,-16 260.4633,-22 260.4633,-28 260.4633,-28 260.4633,-40 260.4633,-40 260.4633,-46 254.4633,-52 248.4633,-52"/>
|
||||
<text text-anchor="middle" x="201.6543" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">destination</text>
|
||||
<text text-anchor="middle" x="201.6543" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadDestination</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/destination.Fuzz->github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/destination.Fuzz->github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination</title>
|
||||
<g id="a_edge1"><a xlink:title="at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/destination.ReadDestination]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.1001,-94.0845C88.7169,-82.2726 114.281,-67.0087 138.1136,-56 138.2063,-55.9572 138.2992,-55.9144 138.3921,-55.8716"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="139.5119,-59.2012 147.2891,-52.0063 136.7226,-52.7809 139.5119,-59.2012"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address -->
|
||||
<g id="node3" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address</title>
|
||||
<g id="a_node3"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address | defined in destination.go:38">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M245.2357,-130C245.2357,-130 158.0729,-130 158.0729,-130 152.0729,-130 146.0729,-124 146.0729,-118 146.0729,-118 146.0729,-106 146.0729,-106 146.0729,-100 152.0729,-94 158.0729,-94 158.0729,-94 245.2357,-94 245.2357,-94 251.2357,-94 257.2357,-100 257.2357,-106 257.2357,-106 257.2357,-118 257.2357,-118 257.2357,-124 251.2357,-130 245.2357,-130"/>
|
||||
<text text-anchor="middle" x="201.6543" y="-116.2" font-family="Verdana" font-size="14.00" fill="#000000">destination</text>
|
||||
<text text-anchor="middle" x="201.6543" y="-99.4" font-family="Verdana" font-size="14.00" fill="#000000">Base32Address</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/destination.Fuzz->(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/destination.Fuzz->(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address</title>
|
||||
<g id="a_edge2"><a xlink:title="at fuzz.go:7: calling [(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base32Address]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.2736,-112C88.3329,-112 112.8362,-112 135.7903,-112"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="135.853,-115.5001 145.853,-112 135.8529,-108.5001 135.853,-115.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64 -->
|
||||
<g id="node4" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64</title>
|
||||
<g id="a_node4"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64 | defined in destination.go:55">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M232.5916,-191C232.5916,-191 170.717,-191 170.717,-191 164.717,-191 158.717,-185 158.717,-179 158.717,-179 158.717,-167 158.717,-167 158.717,-161 164.717,-155 170.717,-155 170.717,-155 232.5916,-155 232.5916,-155 238.5916,-155 244.5916,-161 244.5916,-167 244.5916,-167 244.5916,-179 244.5916,-179 244.5916,-185 238.5916,-191 232.5916,-191"/>
|
||||
<text text-anchor="middle" x="201.6543" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">destination</text>
|
||||
<text text-anchor="middle" x="201.6543" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">Base64</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/destination.Fuzz->(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/destination.Fuzz->(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64</title>
|
||||
<g id="a_edge3"><a xlink:title="at fuzz.go:8: calling [(github.com/go-i2p/go-i2p/lib/common/destination.Destination).Base64]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.2736,-122.4863C91.973,-130.8293 122.976,-142.7495 149.4161,-152.9153"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="148.3351,-156.2494 158.9251,-156.5713 150.8473,-149.7157 148.3351,-156.2494"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.8 KiB |
@ -2,6 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
@ -10,3 +13,9 @@
|
||||
```go
|
||||
func Fuzz(data []byte) int
|
||||
```
|
||||
|
||||
|
||||
|
||||
exportable
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert
|
111
lib/common/fuzz/keys_and_cert/exportable.svg
Normal file
@ -0,0 +1,111 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="295pt" height="306pt"
|
||||
viewBox="0.00 0.00 295.20 306.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 306)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-306 295.202,-306 295.202,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-298 287.202,-298 287.202,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="147.601" y="-277.8" font-family="Arial" font-size="18.00" fill="#000000">exportable</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M148.5386,-60C148.5386,-60 267.202,-60 267.202,-60 273.202,-60 279.202,-66 279.202,-72 279.202,-72 279.202,-248 279.202,-248 279.202,-254 273.202,-260 267.202,-260 267.202,-260 148.5386,-260 148.5386,-260 142.5386,-260 136.5386,-254 136.5386,-248 136.5386,-248 136.5386,-72 136.5386,-72 136.5386,-66 142.5386,-60 148.5386,-60"/>
|
||||
<text text-anchor="middle" x="207.8703" y="-68.5" font-family="Arial" font-size="15.00" fill="#222222">(*KeysAndCert)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz | defined in fuzz.go:5 at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert] at fuzz.go:7: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate] at fuzz.go:8: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey] at fuzz.go:9: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-160C58,-160 28,-160 28,-160 22,-160 16,-154 16,-148 16,-148 16,-136 16,-136 16,-130 22,-124 28,-124 28,-124 58,-124 58,-124 64,-124 70,-130 70,-136 70,-136 70,-148 70,-148 70,-154 64,-160 58,-160"/>
|
||||
<text text-anchor="middle" x="43" y="-137.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M260.6112,-52C260.6112,-52 155.1294,-52 155.1294,-52 149.1294,-52 143.1294,-46 143.1294,-40 143.1294,-40 143.1294,-28 143.1294,-28 143.1294,-22 149.1294,-16 155.1294,-16 155.1294,-16 260.6112,-16 260.6112,-16 266.6112,-16 272.6112,-22 272.6112,-28 272.6112,-28 272.6112,-40 272.6112,-40 272.6112,-46 266.6112,-52 260.6112,-52"/>
|
||||
<text text-anchor="middle" x="207.8703" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
|
||||
<text text-anchor="middle" x="207.8703" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCert</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz->github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz->github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
|
||||
<g id="a_edge1"><a xlink:title="at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
|
||||
<path fill="none" stroke="#8b4513" d="M58.0901,-123.9966C73.9008,-106.1275 100.4054,-78.8225 134.9201,-57.4503"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="137.0442,-60.2603 143.866,-52.1539 133.4779,-54.2368 137.0442,-60.2603"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
|
||||
<g id="node3" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
|
||||
<g id="a_node3"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate | defined in keys_and_cert.go:136">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M248.2246,-130C248.2246,-130 167.516,-130 167.516,-130 161.516,-130 155.516,-124 155.516,-118 155.516,-118 155.516,-106 155.516,-106 155.516,-100 161.516,-94 167.516,-94 167.516,-94 248.2246,-94 248.2246,-94 254.2246,-94 260.2246,-100 260.2246,-106 260.2246,-106 260.2246,-118 260.2246,-118 260.2246,-124 254.2246,-130 248.2246,-130"/>
|
||||
<text text-anchor="middle" x="207.8703" y="-116.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
|
||||
<text text-anchor="middle" x="207.8703" y="-99.4" font-family="Verdana" font-size="14.00" fill="#000000">Certificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
|
||||
<g id="a_edge2"><a xlink:title="at fuzz.go:7: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.225,-137.0461C90.5721,-133.3437 119.2244,-128.1301 145.123,-123.4176"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="146.0533,-126.8058 155.2652,-121.5721 144.8001,-119.9189 146.0533,-126.8058"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey -->
|
||||
<g id="node4" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey</title>
|
||||
<g id="a_node4"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey | defined in keys_and_cert.go:126">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M248.2246,-191C248.2246,-191 167.516,-191 167.516,-191 161.516,-191 155.516,-185 155.516,-179 155.516,-179 155.516,-167 155.516,-167 155.516,-161 161.516,-155 167.516,-155 167.516,-155 248.2246,-155 248.2246,-155 254.2246,-155 260.2246,-161 260.2246,-167 260.2246,-167 260.2246,-179 260.2246,-179 260.2246,-185 254.2246,-191 248.2246,-191"/>
|
||||
<text text-anchor="middle" x="207.8703" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
|
||||
<text text-anchor="middle" x="207.8703" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">PublicKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey</title>
|
||||
<g id="a_edge3"><a xlink:title="at fuzz.go:8: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.225,-147.119C90.5721,-150.9448 119.2244,-156.3322 145.123,-161.2018"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="144.7906,-164.7006 155.2652,-163.1088 146.0842,-157.8212 144.7906,-164.7006"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey -->
|
||||
<g id="node5" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey</title>
|
||||
<g id="a_node5"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey | defined in keys_and_cert.go:131">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M259.0341,-252C259.0341,-252 156.7065,-252 156.7065,-252 150.7065,-252 144.7065,-246 144.7065,-240 144.7065,-240 144.7065,-228 144.7065,-228 144.7065,-222 150.7065,-216 156.7065,-216 156.7065,-216 259.0341,-216 259.0341,-216 265.0341,-216 271.0341,-222 271.0341,-228 271.0341,-228 271.0341,-240 271.0341,-240 271.0341,-246 265.0341,-252 259.0341,-252"/>
|
||||
<text text-anchor="middle" x="207.8703" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
|
||||
<text text-anchor="middle" x="207.8703" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">SigningPublicKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey</title>
|
||||
<g id="a_edge4"><a xlink:title="at fuzz.go:9: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey]">
|
||||
<path fill="none" stroke="#8b4513" d="M67.6184,-160.1635C86.0385,-173.2904 112.1509,-190.9378 136.5386,-204 141.4238,-206.6165 146.5867,-209.1688 151.811,-211.6095"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="150.6805,-214.9395 161.2342,-215.8722 153.5656,-208.5617 150.6805,-214.9395"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 9.9 KiB |
@ -2,6 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/fuzz/router_address"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
@ -10,3 +13,9 @@
|
||||
```go
|
||||
func Fuzz(data []byte) int
|
||||
```
|
||||
|
||||
|
||||
|
||||
exportable
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/fuzz/router_address
|
130
lib/common/fuzz/router_address/exportable.svg
Normal file
@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="298pt" height="367pt"
|
||||
viewBox="0.00 0.00 297.74 367.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 367)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-367 297.7392,-367 297.7392,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-359 289.7392,-359 289.7392,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="148.8696" y="-338.8" font-family="Arial" font-size="18.00" fill="#000000">exportable</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress</title>
|
||||
<g id="a_clust2"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M162.7686,-60C162.7686,-60 263.9706,-60 263.9706,-60 269.9706,-60 275.9706,-66 275.9706,-72 275.9706,-72 275.9706,-309 275.9706,-309 275.9706,-315 269.9706,-321 263.9706,-321 263.9706,-321 162.7686,-321 162.7686,-321 156.7686,-321 150.7686,-315 150.7686,-309 150.7686,-309 150.7686,-72 150.7686,-72 150.7686,-66 156.7686,-60 162.7686,-60"/>
|
||||
<text text-anchor="middle" x="213.3696" y="-68.5" font-family="Arial" font-size="15.00" fill="#222222">(RouterAddress)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz | defined in fuzz.go:5 at fuzz.go:10: calling [(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).TransportStyle] at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/router_address.ReadRouterAddress] at fuzz.go:7: calling [(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Cost] at fuzz.go:8: calling [(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Expiration] at fuzz.go:9: calling [(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Options]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-191C58,-191 28,-191 28,-191 22,-191 16,-185 16,-179 16,-179 16,-167 16,-167 16,-161 22,-155 28,-155 28,-155 58,-155 58,-155 64,-155 70,-161 70,-167 70,-167 70,-179 70,-179 70,-185 64,-191 58,-191"/>
|
||||
<text text-anchor="middle" x="43" y="-168.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_address.ReadRouterAddress -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_address.ReadRouterAddress</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/router_address.ReadRouterAddress | defined in router_address.go:317">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M269.609,-52C269.609,-52 157.1302,-52 157.1302,-52 151.1302,-52 145.1302,-46 145.1302,-40 145.1302,-40 145.1302,-28 145.1302,-28 145.1302,-22 151.1302,-16 157.1302,-16 157.1302,-16 269.609,-16 269.609,-16 275.609,-16 281.609,-22 281.609,-28 281.609,-28 281.609,-40 281.609,-40 281.609,-46 275.609,-52 269.609,-52"/>
|
||||
<text text-anchor="middle" x="213.3696" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">router_address</text>
|
||||
<text text-anchor="middle" x="213.3696" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadRouterAddress</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->github.com/go-i2p/go-i2p/lib/common/router_address.ReadRouterAddress -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->github.com/go-i2p/go-i2p/lib/common/router_address.ReadRouterAddress</title>
|
||||
<g id="a_edge2"><a xlink:title="at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/router_address.ReadRouterAddress]">
|
||||
<path fill="none" stroke="#8b4513" d="M54.2,-154.8153C69.8891,-130.7191 100.687,-88.1071 143.143,-57.8152"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="145.2054,-60.6453 151.4961,-52.1202 141.2621,-54.8616 145.2054,-60.6453"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Cost -->
|
||||
<g id="node3" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Cost</title>
|
||||
<g id="a_node3"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Cost | defined in router_address.go:163">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M254.7758,-130C254.7758,-130 171.9634,-130 171.9634,-130 165.9634,-130 159.9634,-124 159.9634,-118 159.9634,-118 159.9634,-106 159.9634,-106 159.9634,-100 165.9634,-94 171.9634,-94 171.9634,-94 254.7758,-94 254.7758,-94 260.7758,-94 266.7758,-100 266.7758,-106 266.7758,-106 266.7758,-118 266.7758,-118 266.7758,-124 260.7758,-130 254.7758,-130"/>
|
||||
<text text-anchor="middle" x="213.3696" y="-116.2" font-family="Verdana" font-size="14.00" fill="#000000">router_address</text>
|
||||
<text text-anchor="middle" x="213.3696" y="-99.4" font-family="Verdana" font-size="14.00" fill="#000000">Cost</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Cost -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Cost</title>
|
||||
<g id="a_edge3"><a xlink:title="at fuzz.go:7: calling [(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Cost]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.3728,-163.1993C92.7676,-155.181 125.2557,-143.5488 153.6076,-133.3975"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="154.8086,-136.6851 163.0435,-130.019 152.4489,-130.0948 154.8086,-136.6851"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Expiration -->
|
||||
<g id="node4" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Expiration</title>
|
||||
<g id="a_node4"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Expiration | defined in router_address.go:168">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M254.7758,-191C254.7758,-191 171.9634,-191 171.9634,-191 165.9634,-191 159.9634,-185 159.9634,-179 159.9634,-179 159.9634,-167 159.9634,-167 159.9634,-161 165.9634,-155 171.9634,-155 171.9634,-155 254.7758,-155 254.7758,-155 260.7758,-155 266.7758,-161 266.7758,-167 266.7758,-167 266.7758,-179 266.7758,-179 266.7758,-185 260.7758,-191 254.7758,-191"/>
|
||||
<text text-anchor="middle" x="213.3696" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">router_address</text>
|
||||
<text text-anchor="middle" x="213.3696" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">Expiration</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Expiration -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Expiration</title>
|
||||
<g id="a_edge4"><a xlink:title="at fuzz.go:8: calling [(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Expiration]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.3728,-173C91.7248,-173 122.2521,-173 149.6217,-173"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="149.9311,-176.5001 159.931,-173 149.931,-169.5001 149.9311,-176.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Options -->
|
||||
<g id="node5" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Options</title>
|
||||
<g id="a_node5"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Options | defined in router_address.go:305">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M254.7758,-252C254.7758,-252 171.9634,-252 171.9634,-252 165.9634,-252 159.9634,-246 159.9634,-240 159.9634,-240 159.9634,-228 159.9634,-228 159.9634,-222 165.9634,-216 171.9634,-216 171.9634,-216 254.7758,-216 254.7758,-216 260.7758,-216 266.7758,-222 266.7758,-228 266.7758,-228 266.7758,-240 266.7758,-240 266.7758,-246 260.7758,-252 254.7758,-252"/>
|
||||
<text text-anchor="middle" x="213.3696" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">router_address</text>
|
||||
<text text-anchor="middle" x="213.3696" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">Options</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Options -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Options</title>
|
||||
<g id="a_edge5"><a xlink:title="at fuzz.go:9: calling [(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).Options]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.3728,-182.8007C92.7676,-190.819 125.2557,-202.4512 153.6076,-212.6025"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="152.4489,-215.9052 163.0435,-215.981 154.8086,-209.3149 152.4489,-215.9052"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).TransportStyle -->
|
||||
<g id="node6" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).TransportStyle</title>
|
||||
<g id="a_node6"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).TransportStyle | defined in router_address.go:173">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M255.0718,-313C255.0718,-313 171.6674,-313 171.6674,-313 165.6674,-313 159.6674,-307 159.6674,-301 159.6674,-301 159.6674,-289 159.6674,-289 159.6674,-283 165.6674,-277 171.6674,-277 171.6674,-277 255.0718,-277 255.0718,-277 261.0718,-277 267.0718,-283 267.0718,-289 267.0718,-289 267.0718,-301 267.0718,-301 267.0718,-307 261.0718,-313 255.0718,-313"/>
|
||||
<text text-anchor="middle" x="213.3696" y="-299.2" font-family="Verdana" font-size="14.00" fill="#000000">router_address</text>
|
||||
<text text-anchor="middle" x="213.3696" y="-282.4" font-family="Verdana" font-size="14.00" fill="#000000">TransportStyle</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).TransportStyle -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/router_address.Fuzz->(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).TransportStyle</title>
|
||||
<g id="a_edge1"><a xlink:title="at fuzz.go:10: calling [(github.com/go-i2p/go-i2p/lib/common/router_address.RouterAddress).TransportStyle]">
|
||||
<path fill="none" stroke="#8b4513" d="M59.628,-191.1509C78.7338,-211.2098 111.7512,-243.5148 145,-265 149.0077,-267.5898 153.2766,-270.0551 157.6487,-272.3782"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="156.211,-275.5729 166.7171,-276.9412 159.3574,-269.3198 156.211,-275.5729"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 12 KiB |
@ -2,6 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
@ -10,3 +13,9 @@
|
||||
```go
|
||||
func Fuzz(data []byte) int
|
||||
```
|
||||
|
||||
|
||||
|
||||
exportable
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity
|
73
lib/common/fuzz/router_identity/exportable.svg
Normal file
@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="293pt" height="184pt"
|
||||
viewBox="0.00 0.00 293.42 184.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 184)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-184 293.4152,-184 293.4152,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-176 285.4152,-176 285.4152,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="146.7076" y="-155.8" font-family="Arial" font-size="18.00" fill="#000000">exportable</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M161.7805,-60C161.7805,-60 258.6347,-60 258.6347,-60 264.6347,-60 270.6347,-66 270.6347,-72 270.6347,-72 270.6347,-126 270.6347,-126 270.6347,-132 264.6347,-138 258.6347,-138 258.6347,-138 161.7805,-138 161.7805,-138 155.7805,-138 149.7805,-132 149.7805,-126 149.7805,-126 149.7805,-72 149.7805,-72 149.7805,-66 155.7805,-60 161.7805,-60"/>
|
||||
<text text-anchor="middle" x="210.2076" y="-68.5" font-family="Arial" font-size="15.00" fill="#222222">(*KeysAndCert)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity.Fuzz -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity.Fuzz</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity.Fuzz | defined in fuzz.go:5 at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity] at fuzz.go:7: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-65C58,-65 28,-65 28,-65 22,-65 16,-59 16,-53 16,-53 16,-41 16,-41 16,-35 22,-29 28,-29 28,-29 58,-29 58,-29 64,-29 70,-35 70,-41 70,-41 70,-53 70,-53 70,-59 64,-65 58,-65"/>
|
||||
<text text-anchor="middle" x="43" y="-42.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity | defined in router_identity.go:37">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M265.6234,-52C265.6234,-52 154.7918,-52 154.7918,-52 148.7918,-52 142.7918,-46 142.7918,-40 142.7918,-40 142.7918,-28 142.7918,-28 142.7918,-22 148.7918,-16 154.7918,-16 154.7918,-16 265.6234,-16 265.6234,-16 271.6234,-16 277.6234,-22 277.6234,-28 277.6234,-28 277.6234,-40 277.6234,-40 277.6234,-46 271.6234,-52 265.6234,-52"/>
|
||||
<text text-anchor="middle" x="210.2076" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">router_identity</text>
|
||||
<text text-anchor="middle" x="210.2076" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadRouterIdentity</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity.Fuzz->github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity.Fuzz->github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity</title>
|
||||
<g id="a_edge1"><a xlink:title="at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.2369,-44.8824C87.33,-43.5534 110.3072,-41.767 132.6983,-40.0262"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="133.223,-43.496 142.9216,-39.2313 132.6803,-36.5171 133.223,-43.496"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
|
||||
<g id="node3" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
|
||||
<g id="a_node3"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate | defined in keys_and_cert.go:136">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M250.5619,-130C250.5619,-130 169.8533,-130 169.8533,-130 163.8533,-130 157.8533,-124 157.8533,-118 157.8533,-118 157.8533,-106 157.8533,-106 157.8533,-100 163.8533,-94 169.8533,-94 169.8533,-94 250.5619,-94 250.5619,-94 256.5619,-94 262.5619,-100 262.5619,-106 262.5619,-106 262.5619,-118 262.5619,-118 262.5619,-124 256.5619,-130 250.5619,-130"/>
|
||||
<text text-anchor="middle" x="210.2076" y="-116.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
|
||||
<text text-anchor="middle" x="210.2076" y="-99.4" font-family="Verdana" font-size="14.00" fill="#000000">Certificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity.Fuzz->(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
|
||||
<g id="a_edge2"><a xlink:title="at fuzz.go:7: calling [(*github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.3186,-59.5347C90.2689,-68.4946 118.0733,-80.5827 143,-90 144.6187,-90.6115 146.2628,-91.2224 147.9247,-91.8308"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="146.9887,-95.2129 157.5834,-95.2765 149.3408,-88.6199 146.9887,-95.2129"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.1 KiB |
@ -2,6 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/fuzz/string"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
@ -10,3 +13,9 @@
|
||||
```go
|
||||
func Fuzz(data []byte) int
|
||||
```
|
||||
|
||||
|
||||
|
||||
exportable
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/fuzz/string
|
92
lib/common/fuzz/string/exportable.svg
Normal file
@ -0,0 +1,92 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="257pt" height="245pt"
|
||||
viewBox="0.00 0.00 257.22 245.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 245)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-245 257.2202,-245 257.2202,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-237 249.2202,-237 249.2202,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="128.6101" y="-216.8" font-family="Arial" font-size="18.00" fill="#000000">exportable</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/data.I2PString</title>
|
||||
<g id="a_clust2"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/data.I2PString">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M162.7812,-60C162.7812,-60 226.439,-60 226.439,-60 232.439,-60 238.439,-66 238.439,-72 238.439,-72 238.439,-187 238.439,-187 238.439,-193 232.439,-199 226.439,-199 226.439,-199 162.7812,-199 162.7812,-199 156.7812,-199 150.7812,-193 150.7812,-187 150.7812,-187 150.7812,-72 150.7812,-72 150.7812,-66 156.7812,-60 162.7812,-60"/>
|
||||
<text text-anchor="middle" x="194.6101" y="-68.5" font-family="Arial" font-size="15.00" fill="#222222">(I2PString)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/string.Fuzz -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/string.Fuzz</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/fuzz/string.Fuzz | defined in fuzz.go:5 at fuzz.go:7: calling [(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Data] at fuzz.go:10: calling [(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Data] at fuzz.go:8: calling [(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Length] at fuzz.go:11: calling [(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Length] at fuzz.go:9: calling [github.com/go-i2p/go-i2p/lib/common/data.ToI2PString]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-130C58,-130 28,-130 28,-130 22,-130 16,-124 16,-118 16,-118 16,-106 16,-106 16,-100 22,-94 28,-94 28,-94 58,-94 58,-94 64,-94 70,-100 70,-106 70,-106 70,-118 70,-118 70,-124 64,-130 58,-130"/>
|
||||
<text text-anchor="middle" x="43" y="-107.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/data.ToI2PString -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/data.ToI2PString</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/data.ToI2PString | defined in string.go:114">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M229.3306,-52C229.3306,-52 159.8896,-52 159.8896,-52 153.8896,-52 147.8896,-46 147.8896,-40 147.8896,-40 147.8896,-28 147.8896,-28 147.8896,-22 153.8896,-16 159.8896,-16 159.8896,-16 229.3306,-16 229.3306,-16 235.3306,-16 241.3306,-22 241.3306,-28 241.3306,-28 241.3306,-40 241.3306,-40 241.3306,-46 235.3306,-52 229.3306,-52"/>
|
||||
<text text-anchor="middle" x="194.6101" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="194.6101" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">ToI2PString</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/string.Fuzz->github.com/go-i2p/go-i2p/lib/common/data.ToI2PString -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/string.Fuzz->github.com/go-i2p/go-i2p/lib/common/data.ToI2PString</title>
|
||||
<g id="a_edge3"><a xlink:title="at fuzz.go:9: calling [github.com/go-i2p/go-i2p/lib/common/data.ToI2PString]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.0043,-97.129C89.2049,-86.6594 115.8894,-72.3156 146.6535,-56.7465"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="148.5211,-59.7249 155.8799,-52.1027 145.374,-53.4722 148.5211,-59.7249"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/data.I2PString).Data -->
|
||||
<g id="node3" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Data</title>
|
||||
<g id="a_node3"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Data | defined in string.go:73">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M209.6101,-130C209.6101,-130 179.6101,-130 179.6101,-130 173.6101,-130 167.6101,-124 167.6101,-118 167.6101,-118 167.6101,-106 167.6101,-106 167.6101,-100 173.6101,-94 179.6101,-94 179.6101,-94 209.6101,-94 209.6101,-94 215.6101,-94 221.6101,-100 221.6101,-106 221.6101,-106 221.6101,-118 221.6101,-118 221.6101,-124 215.6101,-130 209.6101,-130"/>
|
||||
<text text-anchor="middle" x="194.6101" y="-116.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="194.6101" y="-99.4" font-family="Verdana" font-size="14.00" fill="#000000">Data</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/string.Fuzz->(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Data -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/string.Fuzz->(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Data</title>
|
||||
<g id="a_edge1"><a xlink:title="at fuzz.go:7: calling [(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Data] at fuzz.go:10: calling [(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Data]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.1048,-112C94.3917,-112 130.2444,-112 157.2471,-112"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="157.4848,-115.5001 167.4848,-112 157.4847,-108.5001 157.4848,-115.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/data.I2PString).Length -->
|
||||
<g id="node4" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Length</title>
|
||||
<g id="a_node4"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Length | defined in string.go:31">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M214.2688,-191C214.2688,-191 174.9514,-191 174.9514,-191 168.9514,-191 162.9514,-185 162.9514,-179 162.9514,-179 162.9514,-167 162.9514,-167 162.9514,-161 168.9514,-155 174.9514,-155 174.9514,-155 214.2688,-155 214.2688,-155 220.2688,-155 226.2688,-161 226.2688,-167 226.2688,-167 226.2688,-179 226.2688,-179 226.2688,-185 220.2688,-191 214.2688,-191"/>
|
||||
<text text-anchor="middle" x="194.6101" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="194.6101" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">Length</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/fuzz/string.Fuzz->(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Length -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/fuzz/string.Fuzz->(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Length</title>
|
||||
<g id="a_edge2"><a xlink:title="at fuzz.go:8: calling [(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Length] at fuzz.go:11: calling [(github.com/go-i2p/go-i2p/lib/common/data.I2PString).Length]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.1048,-122.9056C93.2412,-132.2144 126.8736,-145.7464 153.3522,-156.4"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="152.1674,-159.6959 162.7511,-160.1816 154.7804,-153.2018 152.1674,-159.6959"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.8 KiB |
@ -2,32 +2,34 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/key_certificate"
|
||||
|
||||

|
||||
|
||||
Package key_certificate implements the I2P Destination common data structure
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
const (
|
||||
KEYCERT_SIGN_DSA_SHA1 = iota
|
||||
KEYCERT_SIGN_P256
|
||||
KEYCERT_SIGN_P384
|
||||
KEYCERT_SIGN_P521
|
||||
KEYCERT_SIGN_RSA2048
|
||||
KEYCERT_SIGN_RSA3072
|
||||
KEYCERT_SIGN_RSA4096
|
||||
KEYCERT_SIGN_ED25519
|
||||
KEYCERT_SIGN_ED25519PH
|
||||
KEYCERT_SIGN_DSA_SHA1 = 0
|
||||
KEYCERT_SIGN_P256 = 1
|
||||
KEYCERT_SIGN_P384 = 2
|
||||
KEYCERT_SIGN_P521 = 3
|
||||
KEYCERT_SIGN_RSA2048 = 4
|
||||
KEYCERT_SIGN_RSA3072 = 5
|
||||
KEYCERT_SIGN_RSA4096 = 6
|
||||
KEYCERT_SIGN_ED25519 = 7
|
||||
KEYCERT_SIGN_ED25519PH = 8
|
||||
)
|
||||
```
|
||||
Key Certificate Signing Key Types
|
||||
|
||||
```go
|
||||
const (
|
||||
KEYCERT_CRYPTO_ELG = iota
|
||||
KEYCERT_CRYPTO_P256
|
||||
KEYCERT_CRYPTO_P384
|
||||
KEYCERT_CRYPTO_P521
|
||||
KEYCERT_CRYPTO_X25519
|
||||
KEYCERT_CRYPTO_ELG = 0
|
||||
KEYCERT_CRYPTO_P256 = 1
|
||||
KEYCERT_CRYPTO_P384 = 2
|
||||
KEYCERT_CRYPTO_P521 = 3
|
||||
KEYCERT_CRYPTO_X25519 = 4
|
||||
)
|
||||
```
|
||||
Key Certificate Public Key Types
|
||||
@ -45,7 +47,7 @@ const (
|
||||
KEYCERT_SIGN_ED25519PH_SIZE = 32
|
||||
)
|
||||
```
|
||||
SigningPublicKey sizes for Signing Key Types
|
||||
signingPublicKey sizes for Signing Key Types
|
||||
|
||||
```go
|
||||
const (
|
||||
@ -56,7 +58,7 @@ const (
|
||||
KEYCERT_CRYPTO_X25519_SIZE = 32
|
||||
)
|
||||
```
|
||||
PublicKey sizes for Public Key Types
|
||||
publicKey sizes for Public Key Types
|
||||
|
||||
```go
|
||||
const (
|
||||
@ -66,17 +68,42 @@ const (
|
||||
```
|
||||
Sizes of structures in KeyCertificates
|
||||
|
||||
```go
|
||||
const (
|
||||
CRYPTO_KEY_TYPE_ELGAMAL = 0 // ElGamal
|
||||
|
||||
// Signature Types
|
||||
SIGNATURE_TYPE_DSA_SHA1 = 0 // DSA-SHA1
|
||||
SIGNATURE_TYPE_ED25519_SHA512 = 7 // Ed25519
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
const (
|
||||
KEYCERT_MIN_SIZE = 7
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
var CryptoPublicKeySizes = map[uint16]int{
|
||||
CRYPTO_KEY_TYPE_ELGAMAL: 256,
|
||||
}
|
||||
```
|
||||
|
||||
```go
|
||||
var SignaturePublicKeySizes = map[uint16]int{
|
||||
SIGNATURE_TYPE_DSA_SHA1: 128,
|
||||
SIGNATURE_TYPE_ED25519_SHA512: 32,
|
||||
}
|
||||
```
|
||||
|
||||
#### type KeyCertificate
|
||||
|
||||
```go
|
||||
type KeyCertificate struct {
|
||||
Certificate
|
||||
SpkType Integer
|
||||
CpkType Integer
|
||||
}
|
||||
```
|
||||
|
||||
@ -85,9 +112,8 @@ type KeyCertificate []byte
|
||||
#### func KeyCertificateFromCertificate
|
||||
|
||||
```go
|
||||
func KeyCertificateFromCertificate(certificate Certificate) *KeyCertificate
|
||||
func KeyCertificateFromCertificate(cert Certificate) (*KeyCertificate, error)
|
||||
```
|
||||
KeyCertificateFromCertificate returns a *KeyCertificate from a *Certificate.
|
||||
|
||||
#### func NewKeyCertificate
|
||||
|
||||
@ -101,54 +127,72 @@ returned. Returns a list of errors that occurred during parsing.
|
||||
#### func (KeyCertificate) ConstructPublicKey
|
||||
|
||||
```go
|
||||
func (key_certificate KeyCertificate) ConstructPublicKey(data []byte) (public_key crypto.PublicKey, err error)
|
||||
func (keyCertificate KeyCertificate) ConstructPublicKey(data []byte) (public_key crypto.RecievingPublicKey, err error)
|
||||
```
|
||||
ConstructPublicKey returns a PublicKey constructed using any excess data that
|
||||
ConstructPublicKey returns a publicKey constructed using any excess data that
|
||||
may be stored in the KeyCertififcate. Returns enr errors encountered while
|
||||
parsing.
|
||||
|
||||
#### func (KeyCertificate) ConstructSigningPublicKey
|
||||
|
||||
```go
|
||||
func (key_certificate KeyCertificate) ConstructSigningPublicKey(data []byte) (signing_public_key crypto.SigningPublicKey, err error)
|
||||
func (keyCertificate KeyCertificate) ConstructSigningPublicKey(data []byte) (signing_public_key crypto.SigningPublicKey, err error)
|
||||
```
|
||||
ConstructSigningPublicKey returns a SingingPublicKey constructed using any
|
||||
excess data that may be stored in the KeyCertificate. Returns any errors
|
||||
encountered while parsing.
|
||||
|
||||
#### func (*KeyCertificate) CryptoPublicKeySize
|
||||
|
||||
```go
|
||||
func (keyCertificate *KeyCertificate) CryptoPublicKeySize() (int, error)
|
||||
```
|
||||
|
||||
#### func (KeyCertificate) CryptoSize
|
||||
|
||||
```go
|
||||
func (key_certificate KeyCertificate) CryptoSize() (size int)
|
||||
func (keyCertificate KeyCertificate) CryptoSize() (size int)
|
||||
```
|
||||
CryptoSize return the size of a Public Key corresponding to the Key
|
||||
Certificate's PublicKey type.
|
||||
Certificate's publicKey type.
|
||||
|
||||
#### func (KeyCertificate) Data
|
||||
|
||||
```go
|
||||
func (key_certificate KeyCertificate) Data() ([]byte, error)
|
||||
func (keyCertificate KeyCertificate) Data() ([]byte, error)
|
||||
```
|
||||
Data returns the raw []byte contained in the Certificate.
|
||||
|
||||
#### func (KeyCertificate) PublicKeyType
|
||||
|
||||
```go
|
||||
func (key_certificate KeyCertificate) PublicKeyType() (pubkey_type int)
|
||||
func (keyCertificate KeyCertificate) PublicKeyType() (pubkey_type int)
|
||||
```
|
||||
PublicKeyType returns the PublicKey type as a Go integer.
|
||||
PublicKeyType returns the publicKey type as a Go integer.
|
||||
|
||||
#### func (KeyCertificate) SignatureSize
|
||||
|
||||
```go
|
||||
func (key_certificate KeyCertificate) SignatureSize() (size int)
|
||||
func (keyCertificate KeyCertificate) SignatureSize() (size int)
|
||||
```
|
||||
SignatureSize return the size of a Signature corresponding to the Key
|
||||
Certificate's SigningPublicKey type.
|
||||
Certificate's signingPublicKey type.
|
||||
|
||||
#### func (*KeyCertificate) SigningPublicKeySize
|
||||
|
||||
```go
|
||||
func (keyCertificate *KeyCertificate) SigningPublicKeySize() int
|
||||
```
|
||||
|
||||
#### func (KeyCertificate) SigningPublicKeyType
|
||||
|
||||
```go
|
||||
func (key_certificate KeyCertificate) SigningPublicKeyType() (signing_pubkey_type int)
|
||||
func (keyCertificate KeyCertificate) SigningPublicKeyType() (signing_pubkey_type int)
|
||||
```
|
||||
SigningPublicKeyType returns the SigningPublicKey type as a Go integer.
|
||||
SigningPublicKeyType returns the signingPublicKey type as a Go integer.
|
||||
|
||||
|
||||
|
||||
key_certificate
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/key_certificate
|
@ -31,8 +31,9 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/common/signature"
|
||||
"github.com/samber/oops"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/certificate"
|
||||
@ -132,7 +133,7 @@ func (keyCertificate KeyCertificate) PublicKeyType() (pubkey_type int) {
|
||||
|
||||
// ConstructPublicKey returns a publicKey constructed using any excess data that may be stored in the KeyCertififcate.
|
||||
// Returns enr errors encountered while parsing.
|
||||
func (keyCertificate KeyCertificate) ConstructPublicKey(data []byte) (public_key crypto.PublicKey, err error) {
|
||||
func (keyCertificate KeyCertificate) ConstructPublicKey(data []byte) (public_key crypto.RecievingPublicKey, err error) {
|
||||
log.WithFields(logrus.Fields{
|
||||
"input_length": len(data),
|
||||
}).Debug("Constructing publicKey from keyCertificate")
|
||||
@ -148,7 +149,7 @@ func (keyCertificate KeyCertificate) ConstructPublicKey(data []byte) (public_key
|
||||
"required_len": KEYCERT_PUBKEY_SIZE,
|
||||
"reason": "not enough data",
|
||||
}).Error("error constructing public key")
|
||||
err = fmt.Errorf("error constructing public key: not enough data")
|
||||
err = oops.Errorf("error constructing public key: not enough data")
|
||||
return
|
||||
}
|
||||
switch key_type {
|
||||
@ -191,7 +192,7 @@ var SignaturePublicKeySizes = map[uint16]int{
|
||||
func (keyCertificate *KeyCertificate) CryptoPublicKeySize() (int, error) {
|
||||
size, exists := CryptoPublicKeySizes[uint16(keyCertificate.CpkType.Int())]
|
||||
if !exists {
|
||||
return 0, fmt.Errorf("unknown crypto key type: %d", keyCertificate.CpkType.Int())
|
||||
return 0, oops.Errorf("unknown crypto key type: %d", keyCertificate.CpkType.Int())
|
||||
}
|
||||
return size, nil
|
||||
}
|
||||
@ -240,7 +241,7 @@ func (keyCertificate KeyCertificate) ConstructSigningPublicKey(data []byte) (sig
|
||||
"required_len": KEYCERT_SPK_SIZE,
|
||||
"reason": "not enough data",
|
||||
}).Error("error constructing signing public key")
|
||||
err = fmt.Errorf("error constructing signing public key: not enough data")
|
||||
err = oops.Errorf("error constructing signing public key: not enough data")
|
||||
return
|
||||
}
|
||||
switch signing_key_type {
|
||||
@ -297,7 +298,7 @@ func (keyCertificate KeyCertificate) ConstructSigningPublicKey(data []byte) (sig
|
||||
log.WithFields(logrus.Fields{
|
||||
"signing_key_type": signing_key_type,
|
||||
}).Warn("Unknown signing key type")
|
||||
return nil, fmt.Errorf("unknown signing key type")
|
||||
return nil, oops.Errorf("unknown signing key type")
|
||||
}
|
||||
|
||||
return
|
||||
@ -365,11 +366,11 @@ func NewKeyCertificate(bytes []byte) (key_certificate *KeyCertificate, remainder
|
||||
}
|
||||
|
||||
if certificate.Type() != CERT_KEY {
|
||||
return nil, remainder, fmt.Errorf("invalid certificate type: %d", certificate.Type())
|
||||
return nil, remainder, oops.Errorf("invalid certificate type: %d", certificate.Type())
|
||||
}
|
||||
|
||||
if len(certificate.Data()) < 4 {
|
||||
return nil, remainder, fmt.Errorf("key certificate data too short")
|
||||
return nil, remainder, oops.Errorf("key certificate data too short")
|
||||
}
|
||||
log.Println("Certificate Data in NewKeyCertificate: ", certificate.Data()[0:2], certificate.Data()[2:4])
|
||||
|
||||
@ -393,7 +394,7 @@ func NewKeyCertificate(bytes []byte) (key_certificate *KeyCertificate, remainder
|
||||
|
||||
func KeyCertificateFromCertificate(cert Certificate) (*KeyCertificate, error) {
|
||||
if cert.Type() != CERT_KEY {
|
||||
return nil, fmt.Errorf("expected Key Certificate type, got %d", cert.Type())
|
||||
return nil, oops.Errorf("expected Key Certificate type, got %d", cert.Type())
|
||||
}
|
||||
|
||||
data := cert.Data()
|
||||
@ -401,7 +402,7 @@ func KeyCertificateFromCertificate(cert Certificate) (*KeyCertificate, error) {
|
||||
fmt.Printf("Certificate Data Bytes in KeyCertificateFromCertificate: %v\n", data)
|
||||
|
||||
if len(data) < 4 {
|
||||
return nil, fmt.Errorf("certificate payload too short in KeyCertificateFromCertificate")
|
||||
return nil, oops.Errorf("certificate payload too short in KeyCertificateFromCertificate")
|
||||
}
|
||||
|
||||
cpkTypeBytes := data[0:2]
|
||||
|
764
lib/common/key_certificate/key_certificate.svg
Normal file
@ -0,0 +1,764 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="869pt" height="1198pt"
|
||||
viewBox="0.00 0.00 868.95 1198.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 1198)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-1198 868.947,-1198 868.947,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-1190 860.947,-1190 860.947,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="434.4735" y="-1169.8" font-family="Arial" font-size="18.00" fill="#000000">key_certificate</text>
|
||||
</g>
|
||||
<g id="clust7" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate</title>
|
||||
<g id="a_clust7"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate">
|
||||
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M28,-616C28,-616 643.9118,-616 643.9118,-616 649.9118,-616 655.9118,-622 655.9118,-628 655.9118,-628 655.9118,-804 655.9118,-804 655.9118,-810 649.9118,-816 643.9118,-816 643.9118,-816 28,-816 28,-816 22,-816 16,-810 16,-804 16,-804 16,-628 16,-628 16,-622 22,-616 28,-616"/>
|
||||
<text text-anchor="middle" x="335.9559" y="-624.5" font-family="Arial" font-size="15.00" fill="#222222">(KeyCertificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust6" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/data.Integer</title>
|
||||
<g id="a_clust6"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/data.Integer">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M773.0248,-279C773.0248,-279 821.0248,-279 821.0248,-279 827.0248,-279 833.0248,-285 833.0248,-291 833.0248,-291 833.0248,-345 833.0248,-345 833.0248,-351 827.0248,-357 821.0248,-357 821.0248,-357 773.0248,-357 773.0248,-357 767.0248,-357 761.0248,-351 761.0248,-345 761.0248,-345 761.0248,-291 761.0248,-291 761.0248,-285 767.0248,-279 773.0248,-279"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-287.5" font-family="Arial" font-size="15.00" fill="#222222">(Integer)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
|
||||
<g id="a_clust5"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M769.9673,-511C769.9673,-511 824.0823,-511 824.0823,-511 830.0823,-511 836.0823,-517 836.0823,-523 836.0823,-523 836.0823,-638 836.0823,-638 836.0823,-644 830.0823,-650 824.0823,-650 824.0823,-650 769.9673,-650 769.9673,-650 763.9673,-650 757.9673,-644 757.9673,-638 757.9673,-638 757.9673,-523 757.9673,-523 757.9673,-517 763.9673,-511 769.9673,-511"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-519.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/logger.Logger</title>
|
||||
<g id="a_clust4"><a xlink:title="type: *github.com/go-i2p/logger.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M757.9154,-835C757.9154,-835 836.1342,-835 836.1342,-835 842.1342,-835 848.1342,-841 848.1342,-847 848.1342,-847 848.1342,-1084 848.1342,-1084 848.1342,-1090 842.1342,-1096 836.1342,-1096 836.1342,-1096 757.9154,-1096 757.9154,-1096 751.9154,-1096 745.9154,-1090 745.9154,-1084 745.9154,-1084 745.9154,-847 745.9154,-847 745.9154,-841 751.9154,-835 757.9154,-835"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-843.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate">
|
||||
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M498.8136,-204C498.8136,-204 641.5794,-204 641.5794,-204 647.5794,-204 653.5794,-210 653.5794,-216 653.5794,-216 653.5794,-331 653.5794,-331 653.5794,-337 647.5794,-343 641.5794,-343 641.5794,-343 498.8136,-343 498.8136,-343 492.8136,-343 486.8136,-337 486.8136,-331 486.8136,-331 486.8136,-216 486.8136,-216 486.8136,-210 492.8136,-204 498.8136,-204"/>
|
||||
<text text-anchor="middle" x="570.1965" y="-212.5" font-family="Arial" font-size="15.00" fill="#222222">(*KeyCertificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/common/certificate.Certificate">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M760.2527,-16C760.2527,-16 834.7969,-16 834.7969,-16 840.7969,-16 846.7969,-22 846.7969,-28 846.7969,-28 846.7969,-204 846.7969,-204 846.7969,-210 840.7969,-216 834.7969,-216 834.7969,-216 760.2527,-216 760.2527,-216 754.2527,-216 748.2527,-210 748.2527,-204 748.2527,-204 748.2527,-28 748.2527,-28 748.2527,-22 754.2527,-16 760.2527,-16"/>
|
||||
<text text-anchor="middle" x="797.5248" y="-24.5" font-family="Arial" font-size="15.00" fill="#222222">(*Certificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/samber/oops.Errorf -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/samber/oops.Errorf</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M814.2201,-269C814.2201,-269 779.8295,-269 779.8295,-269 773.8295,-269 767.8295,-263 767.8295,-257 767.8295,-257 767.8295,-245 767.8295,-245 767.8295,-239 773.8295,-233 779.8295,-233 779.8295,-233 814.2201,-233 814.2201,-233 820.2201,-233 826.2201,-239 826.2201,-245 826.2201,-245 826.2201,-257 826.2201,-257 826.2201,-263 820.2201,-269 814.2201,-269"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-255.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-238.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate | defined in key_certificate.go:356 at key_certificate.go:368: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type] at key_certificate.go:369: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type] at key_certificate.go:369: calling [github.com/samber/oops.Errorf] at key_certificate.go:373: calling [github.com/samber/oops.Errorf] at key_certificate.go:362: calling [github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate] at key_certificate.go:384: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:384: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:387: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:388: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:364: calling [(*github.com/go-i2p/logger.Logger).Error] at key_certificate.go:372: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at key_certificate.go:375: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at key_certificate.go:375: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at key_certificate.go:377: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at key_certificate.go:378: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at key_certificate.go:375: calling [(*github.com/sirupsen/logrus.Logger).Println] at key_certificate.go:384: calling [(*github.com/sirupsen/logrus.Logger).Println] at key_certificate.go:377: calling [github.com/go-i2p/go-i2p/lib/common/data.ReadInteger] at key_certificate.go:378: calling [github.com/go-i2p/go-i2p/lib/common/data.ReadInteger] at key_certificate.go:357: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:386: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:359: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:390: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:364: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M624.5242,-440C624.5242,-440 515.8688,-440 515.8688,-440 509.8688,-440 503.8688,-434 503.8688,-428 503.8688,-428 503.8688,-416 503.8688,-416 503.8688,-410 509.8688,-404 515.8688,-404 515.8688,-404 624.5242,-404 624.5242,-404 630.5242,-404 636.5242,-410 636.5242,-416 636.5242,-416 636.5242,-428 636.5242,-428 636.5242,-434 630.5242,-440 624.5242,-440"/>
|
||||
<text text-anchor="middle" x="570.1965" y="-417.8" font-family="Verdana" font-size="14.00" fill="#000000">NewKeyCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->github.com/samber/oops.Errorf -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge18"><a xlink:title="at key_certificate.go:369: calling [github.com/samber/oops.Errorf] at key_certificate.go:373: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M596.8742,-403.9091C617.0949,-389.7754 645.2117,-369.2031 668.1026,-349 703.2178,-318.008 702.1893,-299.0641 741.1026,-273 746.3929,-269.4565 752.3392,-266.3522 758.328,-263.6791"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="759.7675,-266.8716 767.6857,-259.8322 757.1059,-260.3973 759.7675,-266.8716"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate | defined in certificate.go:201">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M840.8693,-411C840.8693,-411 753.1803,-411 753.1803,-411 747.1803,-411 741.1803,-405 741.1803,-399 741.1803,-399 741.1803,-387 741.1803,-387 741.1803,-381 747.1803,-375 753.1803,-375 753.1803,-375 840.8693,-375 840.8693,-375 846.8693,-375 852.8693,-381 852.8693,-387 852.8693,-387 852.8693,-399 852.8693,-399 852.8693,-405 846.8693,-411 840.8693,-411"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-397.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-380.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate</title>
|
||||
<g id="a_edge20"><a xlink:title="at key_certificate.go:362: calling [github.com/go-i2p/go-i2p/lib/common/certificate.ReadCertificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M636.7198,-413.495C666.3047,-409.7126 701.0564,-405.2696 730.6267,-401.489"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="731.3777,-404.9216 740.853,-400.1816 730.4899,-397.9781 731.3777,-404.9216"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/data.ReadInteger -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/data.ReadInteger</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/data.ReadInteger | defined in integer.go:51">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M831.4325,-472C831.4325,-472 762.6171,-472 762.6171,-472 756.6171,-472 750.6171,-466 750.6171,-460 750.6171,-460 750.6171,-448 750.6171,-448 750.6171,-442 756.6171,-436 762.6171,-436 762.6171,-436 831.4325,-436 831.4325,-436 837.4325,-436 843.4325,-442 843.4325,-448 843.4325,-448 843.4325,-460 843.4325,-460 843.4325,-466 837.4325,-472 831.4325,-472"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-458.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-441.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadInteger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->github.com/go-i2p/go-i2p/lib/common/data.ReadInteger -->
|
||||
<g id="edge42" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->github.com/go-i2p/go-i2p/lib/common/data.ReadInteger</title>
|
||||
<g id="a_edge42"><a xlink:title="at key_certificate.go:377: calling [github.com/go-i2p/go-i2p/lib/common/data.ReadInteger] at key_certificate.go:378: calling [github.com/go-i2p/go-i2p/lib/common/data.ReadInteger]">
|
||||
<path fill="none" stroke="#8b4513" d="M636.7198,-431.3848C669.748,-436.0443 709.2155,-441.6122 740.7245,-446.0574"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="740.2658,-449.5273 750.6567,-447.4586 741.2437,-442.5959 740.2658,-449.5273"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type -->
|
||||
<g id="node9" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type</title>
|
||||
<g id="a_node9"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type | defined in certificate.go:116">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M824.9814,-147C824.9814,-147 769.0682,-147 769.0682,-147 763.0682,-147 757.0682,-141 757.0682,-135 757.0682,-135 757.0682,-123 757.0682,-123 757.0682,-117 763.0682,-111 769.0682,-111 769.0682,-111 824.9814,-111 824.9814,-111 830.9814,-111 836.9814,-117 836.9814,-123 836.9814,-123 836.9814,-135 836.9814,-135 836.9814,-141 830.9814,-147 824.9814,-147"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-133.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-116.4" font-family="Verdana" font-size="14.00" fill="#000000">Type</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type</title>
|
||||
<g id="a_edge17"><a xlink:title="at key_certificate.go:368: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type] at key_certificate.go:369: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type]">
|
||||
<path fill="none" stroke="#8b4513" d="M603.5382,-403.7704C624.5147,-390.8516 650.7951,-371.7977 668.1026,-349 722.5518,-277.2789 681.9563,-227.8996 741.1026,-160 743.3959,-157.3673 745.9699,-154.9135 748.7209,-152.6345"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="750.8606,-155.4057 756.8567,-146.6709 746.7222,-149.76 750.8606,-155.4057"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data -->
|
||||
<g id="node10" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data</title>
|
||||
<g id="a_node10"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data | defined in certificate.go:134">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M824.9814,-208C824.9814,-208 769.0682,-208 769.0682,-208 763.0682,-208 757.0682,-202 757.0682,-196 757.0682,-196 757.0682,-184 757.0682,-184 757.0682,-178 763.0682,-172 769.0682,-172 769.0682,-172 824.9814,-172 824.9814,-172 830.9814,-172 836.9814,-178 836.9814,-184 836.9814,-184 836.9814,-196 836.9814,-196 836.9814,-202 830.9814,-208 824.9814,-208"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-194.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-177.4" font-family="Verdana" font-size="14.00" fill="#000000">Data</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data</title>
|
||||
<g id="a_edge27"><a xlink:title="at key_certificate.go:372: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at key_certificate.go:375: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at key_certificate.go:375: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at key_certificate.go:377: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data] at key_certificate.go:378: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data]">
|
||||
<path fill="none" stroke="#8b4513" d="M601.2704,-403.9136C622.0733,-390.6712 649.0339,-371.192 668.1026,-349 713.0667,-296.671 689.5991,-257.9074 741.1026,-212 743.2565,-210.0801 745.5977,-208.3183 748.0606,-206.7028"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="749.8257,-209.7255 756.8078,-201.7567 746.3802,-203.6322 749.8257,-209.7255"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="node13" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_node13"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithFields | defined in log.go:60">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M828.2439,-966C828.2439,-966 765.8057,-966 765.8057,-966 759.8057,-966 753.8057,-960 753.8057,-954 753.8057,-954 753.8057,-942 753.8057,-942 753.8057,-936 759.8057,-930 765.8057,-930 765.8057,-930 828.2439,-930 828.2439,-930 834.2439,-930 840.2439,-936 840.2439,-942 840.2439,-942 840.2439,-954 840.2439,-954 840.2439,-960 834.2439,-966 828.2439,-966"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-952.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-935.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge47" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge47"><a xlink:title="at key_certificate.go:357: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:386: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M581.3431,-440.0377C601.1893,-472.8081 642.9244,-544.7714 668.1026,-610 691.4331,-670.4419 690.0503,-687.9844 705.1026,-751 722.7428,-824.8496 695.4332,-857.3432 741.1026,-918 742.5025,-919.8594 744.0522,-921.6161 745.7174,-923.2746"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="743.741,-926.185 753.652,-929.9296 748.2394,-920.8217 743.741,-926.185"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="node14" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_node14"><a xlink:title="(*github.com/go-i2p/logger.Logger).Error | defined in log.go:42">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M814.7911,-1027C814.7911,-1027 779.2585,-1027 779.2585,-1027 773.2585,-1027 767.2585,-1021 767.2585,-1015 767.2585,-1015 767.2585,-1003 767.2585,-1003 767.2585,-997 773.2585,-991 779.2585,-991 779.2585,-991 814.7911,-991 814.7911,-991 820.7911,-991 826.7911,-997 826.7911,-1003 826.7911,-1003 826.7911,-1015 826.7911,-1015 826.7911,-1021 820.7911,-1027 814.7911,-1027"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-1013.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-996.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge26"><a xlink:title="at key_certificate.go:364: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M581.9063,-440.1476C602.451,-472.8028 644.9967,-544.2038 668.1026,-610 723.495,-767.735 641.686,-844.5939 741.1026,-979 745.5619,-985.0288 751.603,-989.9724 758.0695,-993.9818"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="756.5889,-997.1611 767.0427,-998.8842 759.9451,-991.0181 756.5889,-997.1611"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="node16" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_node16"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithError | defined in log.go:66">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M825.5563,-905C825.5563,-905 768.4933,-905 768.4933,-905 762.4933,-905 756.4933,-899 756.4933,-893 756.4933,-893 756.4933,-881 756.4933,-881 756.4933,-875 762.4933,-869 768.4933,-869 768.4933,-869 825.5563,-869 825.5563,-869 831.5563,-869 837.5563,-875 837.5563,-881 837.5563,-881 837.5563,-893 837.5563,-893 837.5563,-899 831.5563,-905 825.5563,-905"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-891.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-874.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="edge49" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_edge49"><a xlink:title="at key_certificate.go:364: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M579.9178,-440.0117C597.8251,-473.3324 637.033,-546.9525 668.1026,-610 712.7258,-700.5509 762.2521,-809.5549 784.7302,-859.5321"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="781.5658,-861.0294 788.8557,-868.7176 787.9513,-858.1614 781.5658,-861.0294"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="node17" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_node17"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M815.8468,-642C815.8468,-642 778.2028,-642 778.2028,-642 772.2028,-642 766.2028,-636 766.2028,-630 766.2028,-630 766.2028,-618 766.2028,-618 766.2028,-612 772.2028,-606 778.2028,-606 778.2028,-606 815.8468,-606 815.8468,-606 821.8468,-606 827.8468,-612 827.8468,-618 827.8468,-618 827.8468,-630 827.8468,-630 827.8468,-636 821.8468,-642 815.8468,-642"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-628.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-611.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge48" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge48"><a xlink:title="at key_certificate.go:359: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:390: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M584.9677,-440.0797C612.8973,-473.4782 676.4662,-545.8263 741.1026,-594 746.1462,-597.759 751.7216,-601.3335 757.3408,-604.6188"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="755.6991,-607.7107 766.1369,-609.5284 759.1108,-601.5984 755.6991,-607.7107"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Println -->
|
||||
<g id="node18" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Println</title>
|
||||
<g id="a_node18"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Println | defined in logger.go:315">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M816.1399,-581C816.1399,-581 777.9097,-581 777.9097,-581 771.9097,-581 765.9097,-575 765.9097,-569 765.9097,-569 765.9097,-557 765.9097,-557 765.9097,-551 771.9097,-545 777.9097,-545 777.9097,-545 816.1399,-545 816.1399,-545 822.1399,-545 828.1399,-551 828.1399,-557 828.1399,-557 828.1399,-569 828.1399,-569 828.1399,-575 822.1399,-581 816.1399,-581"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-567.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-550.4" font-family="Verdana" font-size="14.00" fill="#000000">Println</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/sirupsen/logrus.Logger).Println -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(*github.com/sirupsen/logrus.Logger).Println</title>
|
||||
<g id="a_edge28"><a xlink:title="at key_certificate.go:375: calling [(*github.com/sirupsen/logrus.Logger).Println] at key_certificate.go:384: calling [(*github.com/sirupsen/logrus.Logger).Println]">
|
||||
<path fill="none" stroke="#8b4513" d="M613.0003,-440.1284C640.9539,-453.2026 677.2897,-472.6265 705.1026,-496 724.7105,-512.4782 720.4893,-525.7984 741.1026,-541 745.8362,-544.4909 751.1969,-547.5111 756.679,-550.0988"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="755.3592,-553.3409 765.9302,-554.0519 758.1098,-546.904 755.3592,-553.3409"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="node19" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_node19"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int | defined in integer.go:32">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M812.0248,-349C812.0248,-349 782.0248,-349 782.0248,-349 776.0248,-349 770.0248,-343 770.0248,-337 770.0248,-337 770.0248,-325 770.0248,-325 770.0248,-319 776.0248,-313 782.0248,-313 782.0248,-313 812.0248,-313 812.0248,-313 818.0248,-313 824.0248,-319 824.0248,-325 824.0248,-325 824.0248,-337 824.0248,-337 824.0248,-343 818.0248,-349 812.0248,-349"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-335.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-318.4" font-family="Verdana" font-size="14.00" fill="#000000">Int</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge21"><a xlink:title="at key_certificate.go:384: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:384: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:387: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:388: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M614.774,-403.8763C649.2358,-389.8959 698.151,-370.1187 741.1026,-353 747.4188,-350.4826 754.1434,-347.8212 760.6591,-345.2522"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="761.9606,-348.5013 769.9839,-341.5819 759.3968,-341.9877 761.9606,-348.5013"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.init -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.init</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/key_certificate.init | defined in .:0 at key_certificate.go:44: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M129.5505,-52C129.5505,-52 99.5505,-52 99.5505,-52 93.5505,-52 87.5505,-46 87.5505,-40 87.5505,-40 87.5505,-28 87.5505,-28 87.5505,-22 93.5505,-16 99.5505,-16 99.5505,-16 129.5505,-16 129.5505,-16 135.5505,-16 141.5505,-22 141.5505,-28 141.5505,-28 141.5505,-40 141.5505,-40 141.5505,-46 135.5505,-52 129.5505,-52"/>
|
||||
<text text-anchor="middle" x="114.5505" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="node6" class="node">
|
||||
<title>github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_node6"><a xlink:title="github.com/go-i2p/logger.GetGoI2PLogger | defined in log.go:120">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M387.3852,-52C387.3852,-52 290.0062,-52 290.0062,-52 284.0062,-52 278.0062,-46 278.0062,-40 278.0062,-40 278.0062,-28 278.0062,-28 278.0062,-22 284.0062,-16 290.0062,-16 290.0062,-16 387.3852,-16 387.3852,-16 393.3852,-16 399.3852,-22 399.3852,-28 399.3852,-28 399.3852,-40 399.3852,-40 399.3852,-46 393.3852,-52 387.3852,-52"/>
|
||||
<text text-anchor="middle" x="338.6957" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="338.6957" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.init->github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.init->github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_edge2"><a xlink:title="at key_certificate.go:44: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="none" stroke="#8b4513" d="M141.5876,-34C172.6327,-34 224.7965,-34 267.6649,-34"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="267.7801,-37.5001 277.7801,-34 267.7801,-30.5001 267.7801,-37.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate -->
|
||||
<g id="node7" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate</title>
|
||||
<g id="a_node7"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate | defined in key_certificate.go:395 at key_certificate.go:417: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:418: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:396: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type] at key_certificate.go:397: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type] at key_certificate.go:397: calling [github.com/samber/oops.Errorf] at key_certificate.go:405: calling [github.com/samber/oops.Errorf] at key_certificate.go:400: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M656.0088,-94C656.0088,-94 484.3842,-94 484.3842,-94 478.3842,-94 472.3842,-88 472.3842,-82 472.3842,-82 472.3842,-70 472.3842,-70 472.3842,-64 478.3842,-58 484.3842,-58 484.3842,-58 656.0088,-58 656.0088,-58 662.0088,-58 668.0088,-64 668.0088,-70 668.0088,-70 668.0088,-82 668.0088,-82 668.0088,-88 662.0088,-94 656.0088,-94"/>
|
||||
<text text-anchor="middle" x="570.1965" y="-71.8" font-family="Verdana" font-size="14.00" fill="#000000">KeyCertificateFromCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate->github.com/samber/oops.Errorf -->
|
||||
<g id="edge34" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge34"><a xlink:title="at key_certificate.go:397: calling [github.com/samber/oops.Errorf] at key_certificate.go:405: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M667.4137,-94.0023C681.2903,-99.8803 694.4451,-107.6723 705.1026,-118 740.2286,-152.0391 709.1149,-184.9962 741.1026,-222 745.9705,-227.6313 752.203,-232.3181 758.7302,-236.1646"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="757.2348,-239.3328 767.7133,-240.8988 760.4984,-233.1401 757.2348,-239.3328"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type</title>
|
||||
<g id="a_edge22"><a xlink:title="at key_certificate.go:396: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type] at key_certificate.go:397: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Type]">
|
||||
<path fill="none" stroke="#8b4513" d="M636.8741,-57.9784C659.2304,-55.0617 683.8606,-55.376 705.1026,-64 725.7789,-72.3943 723.0955,-85.8197 741.1026,-99 744.2629,-101.3132 747.6237,-103.5624 751.0685,-105.7208"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="749.3552,-108.774 759.7378,-110.8837 752.9369,-102.7598 749.3552,-108.774"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data -->
|
||||
<g id="edge50" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data</title>
|
||||
<g id="a_edge50"><a xlink:title="at key_certificate.go:400: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Data]">
|
||||
<path fill="none" stroke="#8b4513" d="M668.2729,-75.4271C681.4078,-78.5464 694.1161,-83.4785 705.1026,-91 733.6444,-110.54 716.7851,-135.4012 741.1026,-160 743.4263,-162.3506 745.9733,-164.5622 748.6595,-166.6352"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="746.8354,-169.6291 757.051,-172.4385 750.817,-163.8718 746.8354,-169.6291"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge12"><a xlink:title="at key_certificate.go:417: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:418: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M585.6811,-94.1768C605.4669,-117.6504 640.4609,-160.0092 668.1026,-198 702.8417,-245.7453 695.2619,-271.7837 741.1026,-309 746.8382,-313.6565 753.6796,-317.4203 760.5761,-320.4288"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="759.3279,-323.6987 769.916,-324.0763 761.8743,-317.1783 759.3279,-323.6987"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes -->
|
||||
<g id="node8" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes</title>
|
||||
<g id="a_node8"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes | defined in certificate.go:76">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M825.5703,-86C825.5703,-86 768.4793,-86 768.4793,-86 762.4793,-86 756.4793,-80 756.4793,-74 756.4793,-74 756.4793,-62 756.4793,-62 756.4793,-56 762.4793,-50 768.4793,-50 768.4793,-50 825.5703,-50 825.5703,-50 831.5703,-50 837.5703,-56 837.5703,-62 837.5703,-62 837.5703,-74 837.5703,-74 837.5703,-80 831.5703,-86 825.5703,-86"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-72.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-55.4" font-family="Verdana" font-size="14.00" fill="#000000">RawBytes</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeySize -->
|
||||
<g id="node11" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeySize</title>
|
||||
<g id="a_node11"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeySize | defined in key_certificate.go:200 at key_certificate.go:202: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:204: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:207: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M633.4625,-335C633.4625,-335 506.9305,-335 506.9305,-335 500.9305,-335 494.9305,-329 494.9305,-323 494.9305,-323 494.9305,-311 494.9305,-311 494.9305,-305 500.9305,-299 506.9305,-299 506.9305,-299 633.4625,-299 633.4625,-299 639.4625,-299 645.4625,-305 645.4625,-311 645.4625,-311 645.4625,-323 645.4625,-323 645.4625,-329 639.4625,-335 633.4625,-335"/>
|
||||
<text text-anchor="middle" x="570.1965" y="-312.8" font-family="Verdana" font-size="14.00" fill="#000000">SigningPublicKeySize</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeySize->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge35" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeySize->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge35"><a xlink:title="at key_certificate.go:204: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:207: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M645.8645,-325.397C654.0179,-328.7052 661.6716,-333.1247 668.1026,-339 755.1358,-418.513 668.3555,-501.2372 741.1026,-594 745.4422,-599.5336 751.0942,-604.1728 757.1344,-608.0195"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="755.7236,-611.2419 766.1542,-613.1004 759.1592,-605.1429 755.7236,-611.2419"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeySize->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeySize->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge23"><a xlink:title="at key_certificate.go:202: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M645.5417,-316.5867C664.9665,-316.8997 685.8285,-317.6037 705.1026,-319 723.1812,-320.3097 743.1442,-322.7896 759.8344,-325.1566"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="759.3568,-328.6239 769.7574,-326.6043 760.3674,-321.6972 759.3568,-328.6239"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoPublicKeySize -->
|
||||
<g id="node12" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoPublicKeySize</title>
|
||||
<g id="a_node12"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoPublicKeySize | defined in key_certificate.go:192 at key_certificate.go:193: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:195: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:195: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M631.2863,-274C631.2863,-274 509.1067,-274 509.1067,-274 503.1067,-274 497.1067,-268 497.1067,-262 497.1067,-262 497.1067,-250 497.1067,-250 497.1067,-244 503.1067,-238 509.1067,-238 509.1067,-238 631.2863,-238 631.2863,-238 637.2863,-238 643.2863,-244 643.2863,-250 643.2863,-250 643.2863,-262 643.2863,-262 643.2863,-268 637.2863,-274 631.2863,-274"/>
|
||||
<text text-anchor="middle" x="570.1965" y="-251.8" font-family="Verdana" font-size="14.00" fill="#000000">CryptoPublicKeySize</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoPublicKeySize->github.com/samber/oops.Errorf -->
|
||||
<g id="edge46" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoPublicKeySize->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge46"><a xlink:title="at key_certificate.go:195: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M643.517,-254.3457C663.1929,-253.9049 684.4582,-253.4315 704.1026,-253 721.5707,-252.6163 740.8861,-252.1994 757.361,-251.846"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="757.8064,-255.3374 767.7291,-251.6239 757.6564,-248.339 757.8064,-255.3374"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoPublicKeySize->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoPublicKeySize->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge24"><a xlink:title="at key_certificate.go:193: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:195: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M627.9893,-274.0642C641.1902,-278.2555 655.1461,-282.7384 668.1026,-287 699.2407,-297.2418 734.4523,-309.2911 760.1991,-318.1886"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="759.3255,-321.5899 769.9203,-321.5536 761.6153,-314.975 759.3255,-321.5899"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Warn -->
|
||||
<g id="node15" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Warn</title>
|
||||
<g id="a_node15"><a xlink:title="(*github.com/go-i2p/logger.Logger).Warn | defined in log.go:30">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M814.7911,-1088C814.7911,-1088 779.2585,-1088 779.2585,-1088 773.2585,-1088 767.2585,-1082 767.2585,-1076 767.2585,-1076 767.2585,-1064 767.2585,-1064 767.2585,-1058 773.2585,-1052 779.2585,-1052 779.2585,-1052 814.7911,-1052 814.7911,-1052 820.7911,-1052 826.7911,-1058 826.7911,-1064 826.7911,-1064 826.7911,-1076 826.7911,-1076 826.7911,-1082 820.7911,-1088 814.7911,-1088"/>
|
||||
<text text-anchor="middle" x="797.0248" y="-1074.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="797.0248" y="-1057.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType -->
|
||||
<g id="node20" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
|
||||
<g id="a_node20"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType | defined in key_certificate.go:117 at key_certificate.go:118: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:122: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:121: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:119: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M636.1277,-747C636.1277,-747 504.2653,-747 504.2653,-747 498.2653,-747 492.2653,-741 492.2653,-735 492.2653,-735 492.2653,-723 492.2653,-723 492.2653,-717 498.2653,-711 504.2653,-711 504.2653,-711 636.1277,-711 636.1277,-711 642.1277,-711 648.1277,-717 648.1277,-723 648.1277,-723 648.1277,-735 648.1277,-735 648.1277,-741 642.1277,-747 636.1277,-747"/>
|
||||
<text text-anchor="middle" x="570.1965" y="-724.8" font-family="Verdana" font-size="14.00" fill="#000000">SigningPublicKeyType</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge36" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge36"><a xlink:title="at key_certificate.go:119: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M635.1572,-747.0429C660.136,-756.9365 686.9783,-771.6613 705.1026,-793 742.5292,-837.0644 704.7763,-873.0242 741.1026,-918 742.7078,-919.9874 744.481,-921.8609 746.3786,-923.6248"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="744.2256,-926.3846 754.2222,-929.8944 748.5962,-920.9167 744.2256,-926.3846"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge14"><a xlink:title="at key_certificate.go:121: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M644.8739,-710.9421C653.0147,-707.5817 660.9359,-703.632 668.1026,-699 688.4688,-685.8368 684.0953,-671.7025 704.1026,-658 719.8601,-647.2081 739.4571,-639.3771 756.5865,-633.9707"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="757.7558,-637.2744 766.3393,-631.0636 755.7561,-630.5661 757.7558,-637.2744"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge13"><a xlink:title="at key_certificate.go:118: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:122: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M648.07,-713.9279C655.5391,-710.0271 662.4293,-705.1342 668.1026,-699 719.4262,-643.507 689.4674,-606.9535 705.1026,-533 721.9781,-453.1801 688.7512,-415.5726 741.1026,-353 746.0734,-347.0587 752.8651,-342.7131 760.0032,-339.5374"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="761.6587,-342.6561 769.8133,-335.892 759.2204,-336.0945 761.6587,-342.6561"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType -->
|
||||
<g id="node21" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
|
||||
<g id="a_node21"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType | defined in key_certificate.go:126 at key_certificate.go:128: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:130: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:127: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:131: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M614.0634,-686C614.0634,-686 526.3296,-686 526.3296,-686 520.3296,-686 514.3296,-680 514.3296,-674 514.3296,-674 514.3296,-662 514.3296,-662 514.3296,-656 520.3296,-650 526.3296,-650 526.3296,-650 614.0634,-650 614.0634,-650 620.0634,-650 626.0634,-656 626.0634,-662 626.0634,-662 626.0634,-674 626.0634,-674 626.0634,-680 620.0634,-686 614.0634,-686"/>
|
||||
<text text-anchor="middle" x="570.1965" y="-663.8" font-family="Verdana" font-size="14.00" fill="#000000">PublicKeyType</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge15"><a xlink:title="at key_certificate.go:128: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M626.1211,-676.7869C641.1497,-681.3767 656.4473,-688.3638 668.1026,-699 743.8881,-768.159 677.1256,-837.7918 741.1026,-918 742.6956,-919.9972 744.4589,-921.8787 746.3484,-923.6491"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="744.1829,-926.3989 754.1697,-929.9365 748.5687,-920.9432 744.1829,-926.3989"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge25"><a xlink:title="at key_certificate.go:130: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M626.0014,-649.968C649.8245,-642.9544 678.084,-635.5303 704.1026,-631 720.9685,-628.0634 739.7683,-626.3584 756.0215,-625.3687"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="756.4911,-628.8486 766.2884,-624.8159 756.1146,-621.8587 756.4911,-628.8486"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge37" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge37"><a xlink:title="at key_certificate.go:127: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int] at key_certificate.go:131: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M626.3136,-665.5853C641.4337,-662.4116 656.7317,-656.5409 668.1026,-646 709.344,-607.7689 691.1057,-579.4661 705.1026,-525 724.5416,-449.3569 690.7196,-412.6766 741.1026,-353 746.0999,-347.0809 752.9027,-342.7447 760.0433,-339.571"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="761.6984,-342.6898 769.8519,-335.9245 759.2591,-336.1286 761.6984,-342.6898"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
|
||||
<g id="node22" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
|
||||
<g id="a_node22"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize | defined in key_certificate.go:336 at key_certificate.go:344: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType] at key_certificate.go:349: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:346: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M370.1859,-747C370.1859,-747 307.2055,-747 307.2055,-747 301.2055,-747 295.2055,-741 295.2055,-735 295.2055,-735 295.2055,-723 295.2055,-723 295.2055,-717 301.2055,-711 307.2055,-711 307.2055,-711 370.1859,-711 370.1859,-711 376.1859,-711 382.1859,-717 382.1859,-723 382.1859,-723 382.1859,-735 382.1859,-735 382.1859,-741 376.1859,-747 370.1859,-747"/>
|
||||
<text text-anchor="middle" x="338.6957" y="-724.8" font-family="Verdana" font-size="14.00" fill="#000000">CryptoSize</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge38" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge38"><a xlink:title="at key_certificate.go:346: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M380.2059,-747.179C397.1496,-754.3392 417.0217,-762.4086 435.2904,-769 537.1692,-805.7584 576.109,-783.8366 668.1026,-841 708.1568,-865.8891 703.6251,-889.3777 741.1026,-918 744.0796,-920.2736 747.2523,-922.4725 750.5162,-924.5764"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="748.933,-927.7098 759.297,-929.9096 752.5669,-921.7269 748.933,-927.7098"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge19"><a xlink:title="at key_certificate.go:349: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M382.3547,-745.9975C447.4686,-768.5657 572.5878,-801.0664 668.1026,-760 719.7372,-737.7998 760.3936,-683.6278 781.3742,-650.7454"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="784.4544,-652.42 786.7629,-642.0797 778.51,-648.7235 784.4544,-652.42"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
|
||||
<g id="a_edge16"><a xlink:title="at key_certificate.go:344: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
|
||||
<path fill="none" stroke="#000000" d="M382.2392,-717.5264C416.6513,-708.4588 465.2401,-695.6558 504.3944,-685.3387"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="505.3531,-688.7056 514.1312,-682.7731 503.5695,-681.9367 505.3531,-688.7056"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey -->
|
||||
<g id="node23" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey</title>
|
||||
<g id="a_node23"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey | defined in key_certificate.go:136 at key_certificate.go:152: calling [github.com/samber/oops.Errorf] at key_certificate.go:137: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:146: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:167: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:145: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize] at key_certificate.go:169: calling [(*github.com/go-i2p/logger.Logger).Warn] at key_certificate.go:139: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:160: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:165: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:140: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType] at key_certificate.go:151: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M171.0885,-747C171.0885,-747 58.0125,-747 58.0125,-747 52.0125,-747 46.0125,-741 46.0125,-735 46.0125,-735 46.0125,-723 46.0125,-723 46.0125,-717 52.0125,-711 58.0125,-711 58.0125,-711 171.0885,-711 171.0885,-711 177.0885,-711 183.0885,-717 183.0885,-723 183.0885,-723 183.0885,-735 183.0885,-735 183.0885,-741 177.0885,-747 171.0885,-747"/>
|
||||
<text text-anchor="middle" x="114.5505" y="-724.8" font-family="Verdana" font-size="14.00" fill="#000000">ConstructPublicKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->github.com/samber/oops.Errorf -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge1"><a xlink:title="at key_certificate.go:152: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M183.4532,-714.7794C191.5582,-710.759 199.0724,-705.6054 205.101,-699 381.6728,-505.5329 76.7661,-125 338.6957,-125 338.6957,-125 338.6957,-125 570.1965,-125 630.8101,-125 656.4962,-108.7863 705.1026,-145 735.3968,-167.5704 714.9437,-194.7443 741.1026,-222 746.2048,-227.3162 752.4949,-231.8428 758.9942,-235.6272"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="757.4181,-238.753 767.8946,-240.3322 760.6895,-232.5644 757.4181,-238.753"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge6"><a xlink:title="at key_certificate.go:137: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:146: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:167: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M183.2373,-743.5944C191.4789,-747.7621 199.0879,-753.1179 205.101,-760 259.3545,-822.0933 182.9957,-883.4954 241.101,-942 272.3021,-973.4155 294.4188,-962 338.6957,-962 338.6957,-962 338.6957,-962 435.7904,-962 555.5251,-962 586.1221,-982.4179 705.1026,-969 717.8097,-967.567 731.321,-965.0531 743.9625,-962.2515"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="744.9277,-965.6207 753.8823,-959.9581 743.3509,-958.8006 744.9277,-965.6207"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge41" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge41"><a xlink:title="at key_certificate.go:151: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M183.2823,-743.5552C191.5171,-747.7288 199.1122,-753.0968 205.101,-760 261.1363,-824.5913 191.3196,-879.4744 241.101,-949 252.1089,-964.3739 260.0127,-964.4913 278.101,-970 450.222,-1022.4188 668.5942,-1016.8824 757.0879,-1011.839"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="757.452,-1015.3235 767.2242,-1011.2303 757.0323,-1008.3361 757.452,-1015.3235"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(*github.com/go-i2p/logger.Logger).Warn -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(*github.com/go-i2p/logger.Logger).Warn</title>
|
||||
<g id="a_edge29"><a xlink:title="at key_certificate.go:169: calling [(*github.com/go-i2p/logger.Logger).Warn]">
|
||||
<path fill="none" stroke="#8b4513" d="M183.3243,-743.5189C191.5527,-747.698 199.1349,-753.0771 205.101,-760 275.1143,-841.2414 181.4402,-943.538 278.101,-990 442.4792,-1069.0119 666.8896,-1073.3858 757.0883,-1071.5264"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="757.2475,-1075.0236 767.159,-1071.2804 757.0765,-1068.0257 757.2475,-1075.0236"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge39" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge39"><a xlink:title="at key_certificate.go:139: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:160: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:165: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M179.7005,-710.861C188.4758,-707.4337 197.1754,-703.4889 205.101,-699 273.2704,-660.3902 260.3517,-584 338.6957,-584 338.6957,-584 338.6957,-584 570.1965,-584 636.1837,-584 711.3507,-600.6208 756.4438,-612.4345"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="755.5775,-615.8258 766.1419,-615.0232 757.3829,-609.0626 755.5775,-615.8258"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType -->
|
||||
<g id="edge40" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
|
||||
<g id="a_edge40"><a xlink:title="at key_certificate.go:140: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
|
||||
<path fill="none" stroke="#000000" d="M173.8034,-710.9401C204.6185,-702.2754 243.072,-692.5869 278.101,-687 355.0715,-674.7236 444.6608,-670.3373 504.1193,-668.7935"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="504.2147,-672.2923 514.1277,-668.5531 504.0465,-665.2943 504.2147,-672.2923"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
|
||||
<g id="a_edge7"><a xlink:title="at key_certificate.go:145: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
|
||||
<path fill="none" stroke="#000000" d="M183.3247,-729C216.0448,-729 254.5833,-729 285.0924,-729"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="285.1111,-732.5001 295.1111,-729 285.1111,-725.5001 285.1111,-732.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).Data -->
|
||||
<g id="node24" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).Data</title>
|
||||
<g id="a_node24"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).Data | defined in key_certificate.go:108 at key_certificate.go:110: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:112: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:109: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes] at key_certificate.go:113: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M129.5505,-686C129.5505,-686 99.5505,-686 99.5505,-686 93.5505,-686 87.5505,-680 87.5505,-674 87.5505,-674 87.5505,-662 87.5505,-662 87.5505,-656 93.5505,-650 99.5505,-650 99.5505,-650 129.5505,-650 129.5505,-650 135.5505,-650 141.5505,-656 141.5505,-662 141.5505,-662 141.5505,-674 141.5505,-674 141.5505,-680 135.5505,-686 129.5505,-686"/>
|
||||
<text text-anchor="middle" x="114.5505" y="-663.8" font-family="Verdana" font-size="14.00" fill="#000000">Data</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).Data->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).Data->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes</title>
|
||||
<g id="a_edge30"><a xlink:title="at key_certificate.go:109: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes] at key_certificate.go:113: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).RawBytes]">
|
||||
<path fill="none" stroke="#8b4513" d="M141.9287,-669.3268C162.6011,-668.7047 189.9181,-664.0934 205.101,-646 285.6875,-549.9656 152.4213,-171.6155 241.101,-83 253.5589,-70.5512 382.4012,-77.9928 399.2904,-73 434.9752,-62.4508 436.5018,-42.1915 472.2904,-32 571.4708,-3.7565 601.0031,-24.2227 704.1026,-22 726.6307,-21.5143 749.3452,-32.5024 766.6773,-43.8595"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="765.0063,-46.9595 775.2207,-49.7733 768.9904,-41.2039 765.0063,-46.9595"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).Data->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).Data->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge8"><a xlink:title="at key_certificate.go:110: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M141.7476,-671.3138C161.5079,-675.0183 187.726,-682.7917 205.101,-699 293.2352,-781.2161 218.1672,-935 338.6957,-935 338.6957,-935 338.6957,-935 435.7904,-935 545.0244,-935 672.7184,-941.0101 743.2682,-944.8573"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="743.4934,-948.375 753.6712,-945.4316 743.8793,-941.3857 743.4934,-948.375"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).Data->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).Data->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge9"><a xlink:title="at key_certificate.go:112: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M141.9295,-672.2203C161.2735,-676.3484 186.8938,-684.255 205.101,-699 283.0789,-762.1498 238.354,-881 338.6957,-881 338.6957,-881 338.6957,-881 435.7904,-881 567.0107,-881 624.2079,-863.3191 705.1026,-760 733.5146,-723.7121 762.7128,-678.9988 780.3657,-650.9862"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="783.5501,-652.4956 785.8919,-642.1628 777.6176,-648.78 783.5501,-652.4956"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey -->
|
||||
<g id="node25" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey</title>
|
||||
<g id="a_node25"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey | defined in key_certificate.go:228 at key_certificate.go:243: calling [(*github.com/go-i2p/logger.Logger).Error] at key_certificate.go:244: calling [github.com/samber/oops.Errorf] at key_certificate.go:301: calling [github.com/samber/oops.Errorf] at key_certificate.go:300: calling [(*github.com/go-i2p/logger.Logger).Warn] at key_certificate.go:232: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType] at key_certificate.go:237: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize] at key_certificate.go:229: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:238: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:298: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:231: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:252: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:257: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:262: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:291: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:296: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M193.1515,-808C193.1515,-808 35.9495,-808 35.9495,-808 29.9495,-808 23.9495,-802 23.9495,-796 23.9495,-796 23.9495,-784 23.9495,-784 23.9495,-778 29.9495,-772 35.9495,-772 35.9495,-772 193.1515,-772 193.1515,-772 199.1515,-772 205.1515,-778 205.1515,-784 205.1515,-784 205.1515,-796 205.1515,-796 205.1515,-802 199.1515,-808 193.1515,-808"/>
|
||||
<text text-anchor="middle" x="114.5505" y="-785.8" font-family="Verdana" font-size="14.00" fill="#000000">ConstructSigningPublicKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->github.com/samber/oops.Errorf -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge4"><a xlink:title="at key_certificate.go:244: calling [github.com/samber/oops.Errorf] at key_certificate.go:301: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M187.6597,-771.8102C193.9477,-768.5056 199.8877,-764.6045 205.101,-760 308.7479,-668.4577 355.3858,-271.8646 472.2904,-198 545.8628,-151.5143 582.7247,-181.1353 668.1026,-198 699.8907,-204.2791 733.6942,-218.4884 758.7091,-230.6148"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="757.329,-233.837 767.8435,-235.1395 760.4362,-227.5644 757.329,-233.837"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge43" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge43"><a xlink:title="at key_certificate.go:229: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:238: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:298: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M116.0225,-808.043C121.4043,-860.6999 145.0776,-1014.3968 241.101,-1077 274.1986,-1098.5783 665.3623,-1010.046 705.1026,-996 715.3602,-992.3745 736.4205,-981.4738 755.7972,-970.9753"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="757.7253,-973.9104 764.827,-966.048 754.3723,-967.7656 757.7253,-973.9104"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge3"><a xlink:title="at key_certificate.go:243: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M115.8282,-808.0832C120.6995,-861.6104 143.1637,-1019.5315 241.101,-1084 407.0141,-1193.2144 661.4299,-1080.7977 758.0127,-1030.5784"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="759.9097,-1033.5352 767.1271,-1025.7789 756.6481,-1027.3414 759.9097,-1033.5352"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(*github.com/go-i2p/logger.Logger).Warn -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(*github.com/go-i2p/logger.Logger).Warn</title>
|
||||
<g id="a_edge5"><a xlink:title="at key_certificate.go:300: calling [(*github.com/go-i2p/logger.Logger).Warn]">
|
||||
<path fill="none" stroke="#8b4513" d="M116.8316,-808.3983C127.0704,-881.9631 175.6599,-1151 338.6957,-1151 338.6957,-1151 338.6957,-1151 570.1965,-1151 630.8101,-1151 648.5152,-1152.7226 705.1026,-1131 727.691,-1122.3289 750.3702,-1107.3614 767.55,-1094.4232"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="769.7414,-1097.1531 775.5175,-1088.2712 765.4633,-1091.6125 769.7414,-1097.1531"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge44" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge44"><a xlink:title="at key_certificate.go:231: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:252: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:257: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:262: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:291: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:296: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M119.1898,-808.1063C131.0901,-850.28 167.1025,-954.6126 241.101,-996 303.3494,-1030.8156 331.0158,-989.6295 399.2904,-969 524.3611,-931.2093 571.1409,-937.5743 668.1026,-850 731.0327,-793.1625 770.9949,-698.1555 787.8344,-651.522"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="791.1418,-652.6671 791.1677,-642.0723 784.5405,-650.3385 791.1418,-652.6671"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
|
||||
<g id="a_edge10"><a xlink:title="at key_certificate.go:232: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]">
|
||||
<path fill="none" stroke="#000000" d="M179.1608,-771.9389C188.1072,-768.4844 196.9981,-764.5112 205.101,-760 242.0423,-739.4332 238.3554,-713.4202 278.101,-699 314.4298,-685.8195 410.1854,-698.7747 482.2324,-711.5308"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="481.7713,-715.0039 492.2325,-713.3266 483.0087,-708.1141 481.7713,-715.0039"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
|
||||
<g id="node26" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
|
||||
<g id="a_node26"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize | defined in key_certificate.go:308 at key_certificate.go:323: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:328: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:320: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType] at key_certificate.go:331: calling [(*github.com/sirupsen/logrus.Logger).Debug] at key_certificate.go:325: calling [(*github.com/go-i2p/logger.Logger).Warn]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M377.452,-808C377.452,-808 299.9394,-808 299.9394,-808 293.9394,-808 287.9394,-802 287.9394,-796 287.9394,-796 287.9394,-784 287.9394,-784 287.9394,-778 293.9394,-772 299.9394,-772 299.9394,-772 377.452,-772 377.452,-772 383.452,-772 389.452,-778 389.452,-784 389.452,-784 389.452,-796 389.452,-796 389.452,-802 383.452,-808 377.452,-808"/>
|
||||
<text text-anchor="middle" x="338.6957" y="-785.8" font-family="Verdana" font-size="14.00" fill="#000000">SignatureSize</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
|
||||
<g id="edge33" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
|
||||
<g id="a_edge33"><a xlink:title="at key_certificate.go:237: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]">
|
||||
<path fill="none" stroke="#000000" d="M205.3958,-790C229.5957,-790 255.1662,-790 277.3684,-790"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="277.6448,-793.5001 287.6448,-790 277.6447,-786.5001 277.6448,-793.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge11"><a xlink:title="at key_certificate.go:323: calling [(*github.com/go-i2p/logger.Logger).WithFields] at key_certificate.go:328: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M375.8587,-808.2143C393.6287,-816.5905 415.3328,-826.3426 435.2904,-834 542.9578,-875.3102 672.6115,-913.453 743.777,-933.4278"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="743.2698,-936.9201 753.8429,-936.2413 745.1542,-930.1785 743.2698,-936.9201"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize->(*github.com/go-i2p/logger.Logger).Warn -->
|
||||
<g id="edge45" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize->(*github.com/go-i2p/logger.Logger).Warn</title>
|
||||
<g id="a_edge45"><a xlink:title="at key_certificate.go:325: calling [(*github.com/go-i2p/logger.Logger).Warn]">
|
||||
<path fill="none" stroke="#8b4513" d="M362.379,-808.0007C388.7396,-827.803 432.8315,-860.236 472.2904,-886 572.4968,-951.428 599.1366,-965.5171 704.1026,-1023 721.629,-1032.598 741.3434,-1042.6696 758.0891,-1051.0166"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="756.5402,-1054.1552 767.0541,-1055.4624 759.6502,-1047.8839 756.5402,-1054.1552"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge32" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge32"><a xlink:title="at key_certificate.go:331: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M389.6092,-800.6705C404.284,-803.2803 420.3629,-805.6964 435.2904,-807 539.28,-816.0809 572.5848,-818.1029 668.1026,-776 724.1995,-751.2732 764.3986,-687.971 783.8368,-651.3294"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="787.0763,-652.6838 788.5471,-642.1916 780.8543,-649.4765 787.0763,-652.6838"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType -->
|
||||
<g id="edge31" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
|
||||
<g id="a_edge31"><a xlink:title="at key_certificate.go:320: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]">
|
||||
<path fill="none" stroke="#000000" d="M389.4995,-776.6133C419.4211,-768.729 457.9034,-758.589 491.6603,-749.6941"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="492.7279,-753.0324 501.506,-747.0998 490.9442,-746.2634 492.7279,-753.0324"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 82 KiB |
@ -14,7 +14,7 @@ func TestSigningPublicKeyTypeReturnsCorrectInteger(t *testing.T) {
|
||||
assert.Nil(err)
|
||||
|
||||
pk_type := key_cert.SigningPublicKeyType()
|
||||
assert.Equal(KEYCERT_SIGN_ED25519, pk_type, "SigningPublicKeyType() did not return correct type")
|
||||
assert.Equal(KEYCERT_SIGN_P521, pk_type, "SigningPublicKeyType() did not return correct type")
|
||||
}
|
||||
|
||||
func TestSigningPublicKeyTypeWithInvalidData(t *testing.T) {
|
||||
@ -44,7 +44,7 @@ func TestPublicKeyTypeWithInvalidData(t *testing.T) {
|
||||
// Test with invalid short data
|
||||
key_cert, _, err := NewKeyCertificate([]byte{0x05, 0x00, 0x02})
|
||||
assert.NotNil(err)
|
||||
assert.Contains(err.Error(), "key certificate data too short", "Expected error for invalid data")
|
||||
assert.Contains(err.Error(), "certificate parsing warning: certificate data is shorter than specified by length", "Expected error for invalid data")
|
||||
assert.Nil(key_cert)
|
||||
}
|
||||
|
||||
@ -61,6 +61,7 @@ func TestConstructPublicKeyWithInsufficientData(t *testing.T) {
|
||||
assert.NotNil(err)
|
||||
assert.Equal("error constructing public key: not enough data", err.Error())
|
||||
}
|
||||
|
||||
func TestConstructPublicKeyReturnsCorrectDataWithElg(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
|
116
lib/common/keys_and_cert/README.md
Normal file
@ -0,0 +1,116 @@
|
||||
# keys_and_cert
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
|
||||
|
||||

|
||||
|
||||
Package keys_and_cert implements the I2P KeysAndCert common data structure
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
const (
|
||||
KEYS_AND_CERT_PUBKEY_SIZE = 256
|
||||
KEYS_AND_CERT_SPK_SIZE = 128
|
||||
KEYS_AND_CERT_MIN_SIZE = 387
|
||||
KEYS_AND_CERT_DATA_SIZE = 384
|
||||
)
|
||||
```
|
||||
Sizes of various KeysAndCert structures and requirements
|
||||
|
||||
#### type KeysAndCert
|
||||
|
||||
```go
|
||||
type KeysAndCert struct {
|
||||
KeyCertificate *KeyCertificate
|
||||
ReceivingPublic crypto.RecievingPublicKey
|
||||
Padding []byte
|
||||
SigningPublic crypto.SigningPublicKey
|
||||
}
|
||||
```
|
||||
|
||||
KeysAndCert is the represenation of an I2P KeysAndCert.
|
||||
|
||||
https://geti2p.net/spec/common-structures#keysandcert
|
||||
|
||||
#### func NewKeysAndCert
|
||||
|
||||
```go
|
||||
func NewKeysAndCert(
|
||||
keyCertificate *KeyCertificate,
|
||||
publicKey crypto.RecievingPublicKey,
|
||||
padding []byte,
|
||||
signingPublicKey crypto.SigningPublicKey,
|
||||
) (*KeysAndCert, error)
|
||||
```
|
||||
NewKeysAndCert creates a new KeysAndCert instance with the provided parameters.
|
||||
It validates the sizes of the provided keys and padding before assembling the
|
||||
struct.
|
||||
|
||||
#### func ReadKeysAndCert
|
||||
|
||||
```go
|
||||
func ReadKeysAndCert(data []byte) (keys_and_cert KeysAndCert, remainder []byte, err error)
|
||||
```
|
||||
ReadKeysAndCert creates a new *KeysAndCert from []byte using ReadKeysAndCert.
|
||||
Returns a pointer to KeysAndCert unlike ReadKeysAndCert.
|
||||
|
||||
#### func ReadKeysAndCertElgAndEd25519
|
||||
|
||||
```go
|
||||
func ReadKeysAndCertElgAndEd25519(data []byte) (keysAndCert *KeysAndCert, remainder []byte, err error)
|
||||
```
|
||||
|
||||
#### func (KeysAndCert) Bytes
|
||||
|
||||
```go
|
||||
func (keys_and_cert KeysAndCert) Bytes() []byte
|
||||
```
|
||||
Bytes returns the entire keyCertificate in []byte form, trims payload to
|
||||
specified length.
|
||||
|
||||
#### func (*KeysAndCert) Certificate
|
||||
|
||||
```go
|
||||
func (keys_and_cert *KeysAndCert) Certificate() (cert Certificate)
|
||||
```
|
||||
Certfificate returns the certificate.
|
||||
|
||||
#### func (*KeysAndCert) PublicKey
|
||||
|
||||
```go
|
||||
func (keys_and_cert *KeysAndCert) PublicKey() (key crypto.RecievingPublicKey)
|
||||
```
|
||||
publicKey returns the public key as a crypto.publicKey.
|
||||
|
||||
#### func (*KeysAndCert) SigningPublicKey
|
||||
|
||||
```go
|
||||
func (keys_and_cert *KeysAndCert) SigningPublicKey() (signing_public_key crypto.SigningPublicKey)
|
||||
```
|
||||
signingPublicKey returns the signing public key.
|
||||
|
||||
#### type PrivateKeysAndCert
|
||||
|
||||
```go
|
||||
type PrivateKeysAndCert struct {
|
||||
KeysAndCert
|
||||
PK_KEY crypto.PrivateKey
|
||||
SPK_KEY crypto.PrivateKey
|
||||
}
|
||||
```
|
||||
|
||||
PrivateKeysAndCert contains a KeysAndCert along with the corresponding private
|
||||
keys for the Public Key and the Signing Public Key
|
||||
|
||||
#### func NewPrivateKeysAndCert
|
||||
|
||||
```go
|
||||
func NewPrivateKeysAndCert() (*PrivateKeysAndCert, error)
|
||||
```
|
||||
|
||||
|
||||
|
||||
keys_and_cert
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/keys_and_cert
|
@ -1,66 +0,0 @@
|
||||
# keys_and_cert
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
|
||||
|
||||
Package keys_and_cert implements the I2P KeysAndCert common data structure
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
const (
|
||||
KEYS_AND_CERT_PUBKEY_SIZE = 256
|
||||
KEYS_AND_CERT_SPK_SIZE = 128
|
||||
KEYS_AND_CERT_MIN_SIZE = 387
|
||||
KEYS_AND_CERT_DATA_SIZE = 384
|
||||
)
|
||||
```
|
||||
Sizes of various KeysAndCert structures and requirements
|
||||
|
||||
#### type KeysAndCert
|
||||
|
||||
```go
|
||||
type KeysAndCert struct {
|
||||
KeyCertificate *KeyCertificate
|
||||
}
|
||||
```
|
||||
|
||||
KeysAndCert is the represenation of an I2P KeysAndCert.
|
||||
|
||||
https://geti2p.net/spec/common-structures#keysandcert
|
||||
|
||||
#### func ReadKeysAndCert
|
||||
|
||||
```go
|
||||
func ReadKeysAndCert(data []byte) (keys_and_cert KeysAndCert, remainder []byte, err error)
|
||||
```
|
||||
ReadKeysAndCert creates a new *KeysAndCert from []byte using ReadKeysAndCert.
|
||||
Returns a pointer to KeysAndCert unlike ReadKeysAndCert.
|
||||
|
||||
#### func (KeysAndCert) Bytes
|
||||
|
||||
```go
|
||||
func (keys_and_cert KeysAndCert) Bytes() []byte
|
||||
```
|
||||
Bytes returns the entire KeyCertificate in []byte form, trims payload to
|
||||
specified length.
|
||||
|
||||
#### func (*KeysAndCert) Certificate
|
||||
|
||||
```go
|
||||
func (keys_and_cert *KeysAndCert) Certificate() (cert Certificate)
|
||||
```
|
||||
Certfificate returns the certificate.
|
||||
|
||||
#### func (*KeysAndCert) PublicKey
|
||||
|
||||
```go
|
||||
func (keys_and_cert *KeysAndCert) PublicKey() (key crypto.PublicKey)
|
||||
```
|
||||
PublicKey returns the public key as a crypto.PublicKey.
|
||||
|
||||
#### func (*KeysAndCert) SigningPublicKey
|
||||
|
||||
```go
|
||||
func (keys_and_cert *KeysAndCert) SigningPublicKey() (signing_public_key crypto.SigningPublicKey)
|
||||
```
|
||||
SigningPublicKey returns the signing public key.
|
@ -2,10 +2,8 @@
|
||||
package keys_and_cert
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/samber/oops"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/certificate"
|
||||
. "github.com/go-i2p/go-i2p/lib/common/key_certificate"
|
||||
@ -79,38 +77,59 @@ total length: 387+ bytes
|
||||
//
|
||||
// https://geti2p.net/spec/common-structures#keysandcert
|
||||
type KeysAndCert struct {
|
||||
KeyCertificate *KeyCertificate
|
||||
publicKey crypto.PublicKey
|
||||
Padding []byte
|
||||
signingPublicKey crypto.SigningPublicKey
|
||||
KeyCertificate *KeyCertificate
|
||||
ReceivingPublic crypto.RecievingPublicKey
|
||||
Padding []byte
|
||||
SigningPublic crypto.SigningPublicKey
|
||||
}
|
||||
|
||||
// Bytes returns the entire keyCertificate in []byte form, trims payload to specified length.
|
||||
func (keys_and_cert KeysAndCert) Bytes() []byte {
|
||||
bytes := keys_and_cert.publicKey.Bytes()
|
||||
bytes = append(bytes, keys_and_cert.Padding...)
|
||||
bytes = append(bytes, keys_and_cert.signingPublicKey.Bytes()...)
|
||||
bytes = append(bytes, keys_and_cert.KeyCertificate.Bytes()...)
|
||||
bytes := []byte{}
|
||||
rpublen := 0
|
||||
if keys_and_cert.ReceivingPublic != nil {
|
||||
bytes = append(bytes, keys_and_cert.ReceivingPublic.Bytes()...)
|
||||
rpublen = len(keys_and_cert.ReceivingPublic.Bytes())
|
||||
}
|
||||
// bytes = append(bytes, keys_and_cert.ReceivingPublic.Bytes()...)
|
||||
padlen := 0
|
||||
if keys_and_cert.Padding != nil {
|
||||
bytes = append(bytes, keys_and_cert.Padding...)
|
||||
padlen = len(keys_and_cert.Padding)
|
||||
}
|
||||
// bytes = append(bytes, keys_and_cert.Padding...)
|
||||
spublen := 0
|
||||
if keys_and_cert.SigningPublic != nil {
|
||||
bytes = append(bytes, keys_and_cert.SigningPublic.Bytes()...)
|
||||
spublen = len(keys_and_cert.SigningPublic.Bytes())
|
||||
}
|
||||
// bytes = append(bytes, keys_and_cert.SigningPublic.Bytes()...)
|
||||
certlen := 0
|
||||
if keys_and_cert.KeyCertificate != nil {
|
||||
bytes = append(bytes, keys_and_cert.KeyCertificate.Bytes()...)
|
||||
certlen = len(keys_and_cert.KeyCertificate.Bytes())
|
||||
}
|
||||
// bytes = append(bytes, keys_and_cert.KeyCertificate.Bytes()...)
|
||||
log.WithFields(logrus.Fields{
|
||||
"bytes": bytes,
|
||||
"padding": keys_and_cert.Padding,
|
||||
"bytes_length": len(bytes),
|
||||
"pk_bytes_length": len(keys_and_cert.publicKey.Bytes()),
|
||||
"padding_bytes_length": len(keys_and_cert.Padding),
|
||||
"spk_bytes_length": len(keys_and_cert.signingPublicKey.Bytes()),
|
||||
"cert_bytes_length": len(keys_and_cert.KeyCertificate.Bytes()),
|
||||
"pk_bytes_length": rpublen,
|
||||
"padding_bytes_length": padlen,
|
||||
"spk_bytes_length": spublen,
|
||||
"cert_bytes_length": certlen,
|
||||
}).Debug("Retrieved bytes from KeysAndCert")
|
||||
return bytes
|
||||
}
|
||||
|
||||
// publicKey returns the public key as a crypto.publicKey.
|
||||
func (keys_and_cert *KeysAndCert) PublicKey() (key crypto.PublicKey) {
|
||||
return keys_and_cert.publicKey
|
||||
func (keys_and_cert *KeysAndCert) PublicKey() (key crypto.RecievingPublicKey) {
|
||||
return keys_and_cert.ReceivingPublic
|
||||
}
|
||||
|
||||
// signingPublicKey returns the signing public key.
|
||||
func (keys_and_cert *KeysAndCert) SigningPublicKey() (signing_public_key crypto.SigningPublicKey) {
|
||||
return keys_and_cert.signingPublicKey
|
||||
return keys_and_cert.SigningPublic
|
||||
}
|
||||
|
||||
// Certfificate returns the certificate.
|
||||
@ -120,10 +139,13 @@ func (keys_and_cert *KeysAndCert) Certificate() (cert Certificate) {
|
||||
|
||||
// ReadKeysAndCert creates a new *KeysAndCert from []byte using ReadKeysAndCert.
|
||||
// Returns a pointer to KeysAndCert unlike ReadKeysAndCert.
|
||||
func ReadKeysAndCert(data []byte) (keys_and_cert KeysAndCert, remainder []byte, err error) {
|
||||
func ReadKeysAndCert(data []byte) (*KeysAndCert, []byte, error) {
|
||||
log.WithFields(logrus.Fields{
|
||||
"input_length": len(data),
|
||||
}).Debug("Reading KeysAndCert from data")
|
||||
var err error
|
||||
var remainder []byte
|
||||
var keys_and_cert KeysAndCert
|
||||
|
||||
data_len := len(data)
|
||||
if data_len < KEYS_AND_CERT_MIN_SIZE {
|
||||
@ -133,14 +155,14 @@ func ReadKeysAndCert(data []byte) (keys_and_cert KeysAndCert, remainder []byte,
|
||||
"required_len": KEYS_AND_CERT_MIN_SIZE,
|
||||
"reason": "not enough data",
|
||||
}).Error("error parsing keys and cert")
|
||||
err = errors.New("error parsing KeysAndCert: data is smaller than minimum valid size")
|
||||
return
|
||||
err = oops.Errorf("error parsing KeysAndCert: data is smaller than minimum valid size")
|
||||
return &keys_and_cert, remainder, err
|
||||
}
|
||||
|
||||
keys_and_cert.KeyCertificate, remainder, err = NewKeyCertificate(data[KEYS_AND_CERT_DATA_SIZE:])
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to create keyCertificate")
|
||||
return
|
||||
return &keys_and_cert, remainder, err
|
||||
}
|
||||
|
||||
// Get the actual key sizes from the certificate
|
||||
@ -148,10 +170,10 @@ func ReadKeysAndCert(data []byte) (keys_and_cert KeysAndCert, remainder []byte,
|
||||
sigKeySize := keys_and_cert.KeyCertificate.SignatureSize()
|
||||
|
||||
// Construct public key
|
||||
keys_and_cert.publicKey, err = keys_and_cert.KeyCertificate.ConstructPublicKey(data[:pubKeySize])
|
||||
keys_and_cert.ReceivingPublic, err = keys_and_cert.KeyCertificate.ConstructPublicKey(data[:pubKeySize])
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to construct publicKey")
|
||||
return
|
||||
return &keys_and_cert, remainder, err
|
||||
}
|
||||
|
||||
// Calculate padding size and extract padding
|
||||
@ -162,12 +184,12 @@ func ReadKeysAndCert(data []byte) (keys_and_cert KeysAndCert, remainder []byte,
|
||||
}
|
||||
|
||||
// Construct signing public key
|
||||
keys_and_cert.signingPublicKey, err = keys_and_cert.KeyCertificate.ConstructSigningPublicKey(
|
||||
keys_and_cert.SigningPublic, err = keys_and_cert.KeyCertificate.ConstructSigningPublicKey(
|
||||
data[KEYS_AND_CERT_DATA_SIZE-sigKeySize : KEYS_AND_CERT_DATA_SIZE],
|
||||
)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to construct signingPublicKey")
|
||||
return
|
||||
return &keys_and_cert, remainder, err
|
||||
}
|
||||
|
||||
log.WithFields(logrus.Fields{
|
||||
@ -177,7 +199,7 @@ func ReadKeysAndCert(data []byte) (keys_and_cert KeysAndCert, remainder []byte,
|
||||
"remainder_length": len(remainder),
|
||||
}).Debug("Successfully read KeysAndCert")
|
||||
|
||||
return
|
||||
return &keys_and_cert, remainder, err
|
||||
}
|
||||
|
||||
func ReadKeysAndCertElgAndEd25519(data []byte) (keysAndCert *KeysAndCert, remainder []byte, err error) {
|
||||
@ -196,7 +218,7 @@ func ReadKeysAndCertElgAndEd25519(data []byte) (keysAndCert *KeysAndCert, remain
|
||||
|
||||
dataLen := len(data)
|
||||
if dataLen < minDataLength {
|
||||
err = fmt.Errorf("error parsing KeysAndCert: data is smaller than minimum valid size, got %d bytes", dataLen)
|
||||
err = oops.Errorf("error parsing KeysAndCert: data is smaller than minimum valid size, got %d bytes", dataLen)
|
||||
log.WithError(err).Error("Data is smaller than minimum valid size")
|
||||
return
|
||||
}
|
||||
@ -207,13 +229,13 @@ func ReadKeysAndCertElgAndEd25519(data []byte) (keysAndCert *KeysAndCert, remain
|
||||
// Extract public key
|
||||
publicKeyData := data[:pubKeySize]
|
||||
if len(publicKeyData) != pubKeySize {
|
||||
err = errors.New("invalid ElGamal public key length")
|
||||
err = oops.Errorf("invalid ElGamal public key length")
|
||||
log.WithError(err).Error("Invalid ElGamal public key length")
|
||||
return
|
||||
}
|
||||
var elgPublicKey crypto.ElgPublicKey
|
||||
copy(elgPublicKey[:], publicKeyData)
|
||||
keysAndCert.publicKey = elgPublicKey
|
||||
keysAndCert.ReceivingPublic = elgPublicKey
|
||||
|
||||
// Extract padding
|
||||
paddingStart := pubKeySize
|
||||
@ -223,12 +245,12 @@ func ReadKeysAndCertElgAndEd25519(data []byte) (keysAndCert *KeysAndCert, remain
|
||||
// Extract signing public key
|
||||
signingPubKeyData := data[paddingEnd : paddingEnd+sigKeySize]
|
||||
if len(signingPubKeyData) != sigKeySize {
|
||||
err = errors.New("invalid Ed25519 public key length")
|
||||
err = oops.Errorf("invalid Ed25519 public key length")
|
||||
log.WithError(err).Error("Invalid Ed25519 public key length")
|
||||
return
|
||||
}
|
||||
edPublicKey := crypto.Ed25519PublicKey(signingPubKeyData)
|
||||
keysAndCert.signingPublicKey = edPublicKey
|
||||
keysAndCert.SigningPublic = edPublicKey
|
||||
|
||||
// Extract the certificate
|
||||
certData := data[totalKeySize:]
|
||||
@ -248,18 +270,18 @@ func ReadKeysAndCertElgAndEd25519(data []byte) (keysAndCert *KeysAndCert, remain
|
||||
return
|
||||
}
|
||||
|
||||
func constructPublicKey(data []byte, cryptoType uint16) (crypto.PublicKey, error) {
|
||||
func constructPublicKey(data []byte, cryptoType uint16) (crypto.RecievingPublicKey, error) {
|
||||
switch cryptoType {
|
||||
case CRYPTO_KEY_TYPE_ELGAMAL:
|
||||
if len(data) != 256 {
|
||||
return nil, errors.New("invalid ElGamal public key length")
|
||||
return nil, oops.Errorf("invalid ElGamal public key length")
|
||||
}
|
||||
var elgPublicKey crypto.ElgPublicKey
|
||||
copy(elgPublicKey[:], data)
|
||||
return elgPublicKey, nil
|
||||
// Handle other crypto types...
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported crypto key type: %d", cryptoType)
|
||||
return nil, oops.Errorf("unsupported crypto key type: %d", cryptoType)
|
||||
}
|
||||
}
|
||||
|
||||
@ -267,12 +289,12 @@ func constructSigningPublicKey(data []byte, sigType uint16) (crypto.SigningPubli
|
||||
switch sigType {
|
||||
case SIGNATURE_TYPE_ED25519_SHA512:
|
||||
if len(data) != 32 {
|
||||
return nil, errors.New("invalid Ed25519 public key length")
|
||||
return nil, oops.Errorf("invalid Ed25519 public key length")
|
||||
}
|
||||
return crypto.Ed25519PublicKey(data), nil
|
||||
// Handle other signature types...
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported signature key type: %d", sigType)
|
||||
return nil, oops.Errorf("unsupported signature key type: %d", sigType)
|
||||
}
|
||||
}
|
||||
|
||||
@ -280,7 +302,7 @@ func constructSigningPublicKey(data []byte, sigType uint16) (crypto.SigningPubli
|
||||
// It validates the sizes of the provided keys and padding before assembling the struct.
|
||||
func NewKeysAndCert(
|
||||
keyCertificate *KeyCertificate,
|
||||
publicKey crypto.PublicKey,
|
||||
publicKey crypto.RecievingPublicKey,
|
||||
padding []byte,
|
||||
signingPublicKey crypto.SigningPublicKey,
|
||||
) (*KeysAndCert, error) {
|
||||
@ -288,7 +310,7 @@ func NewKeysAndCert(
|
||||
|
||||
if keyCertificate == nil {
|
||||
log.Error("KeyCertificate is nil")
|
||||
return nil, errors.New("KeyCertificate cannot be nil")
|
||||
return nil, oops.Errorf("KeyCertificate cannot be nil")
|
||||
}
|
||||
|
||||
// Get actual key sizes from certificate
|
||||
@ -296,21 +318,25 @@ func NewKeysAndCert(
|
||||
sigKeySize := keyCertificate.SignatureSize()
|
||||
|
||||
// Validate public key size
|
||||
if publicKey.Len() != pubKeySize {
|
||||
log.WithFields(logrus.Fields{
|
||||
"expected_size": pubKeySize,
|
||||
"actual_size": publicKey.Len(),
|
||||
}).Error("Invalid publicKey size")
|
||||
return nil, fmt.Errorf("publicKey has invalid size: expected %d, got %d", pubKeySize, publicKey.Len())
|
||||
if publicKey != nil {
|
||||
if publicKey.Len() != pubKeySize {
|
||||
log.WithFields(logrus.Fields{
|
||||
"expected_size": pubKeySize,
|
||||
"actual_size": publicKey.Len(),
|
||||
}).Error("Invalid publicKey size")
|
||||
return nil, oops.Errorf("publicKey has invalid size: expected %d, got %d", pubKeySize, publicKey.Len())
|
||||
}
|
||||
}
|
||||
|
||||
// Validate signing key size
|
||||
if signingPublicKey.Len() != sigKeySize {
|
||||
log.WithFields(logrus.Fields{
|
||||
"expected_size": sigKeySize,
|
||||
"actual_size": signingPublicKey.Len(),
|
||||
}).Error("Invalid signingPublicKey size")
|
||||
return nil, fmt.Errorf("signingPublicKey has invalid size: expected %d, got %d", sigKeySize, signingPublicKey.Len())
|
||||
if signingPublicKey != nil {
|
||||
// Validate signing key size
|
||||
if signingPublicKey.Len() != sigKeySize {
|
||||
log.WithFields(logrus.Fields{
|
||||
"expected_size": sigKeySize,
|
||||
"actual_size": signingPublicKey.Len(),
|
||||
}).Error("Invalid signingPublicKey size")
|
||||
return nil, oops.Errorf("signingPublicKey has invalid size: expected %d, got %d", sigKeySize, signingPublicKey.Len())
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate expected padding size
|
||||
@ -320,21 +346,21 @@ func NewKeysAndCert(
|
||||
"expected_size": expectedPaddingSize,
|
||||
"actual_size": len(padding),
|
||||
}).Error("Invalid padding size")
|
||||
return nil, fmt.Errorf("invalid padding size")
|
||||
return nil, oops.Errorf("invalid padding size")
|
||||
}
|
||||
|
||||
keysAndCert := &KeysAndCert{
|
||||
KeyCertificate: keyCertificate,
|
||||
publicKey: publicKey,
|
||||
Padding: padding,
|
||||
signingPublicKey: signingPublicKey,
|
||||
KeyCertificate: keyCertificate,
|
||||
ReceivingPublic: publicKey,
|
||||
Padding: padding,
|
||||
SigningPublic: signingPublicKey,
|
||||
}
|
||||
|
||||
log.WithFields(logrus.Fields{
|
||||
/*log.WithFields(logrus.Fields{
|
||||
"public_key_length": publicKey.Len(),
|
||||
"signing_public_key_length": signingPublicKey.Len(),
|
||||
"padding_length": len(padding),
|
||||
}).Debug("Successfully created KeysAndCert")
|
||||
}).Debug("Successfully created KeysAndCert")*/
|
||||
|
||||
return keysAndCert, nil
|
||||
}
|
||||
|
531
lib/common/keys_and_cert/keys_and_cert.svg
Normal file
@ -0,0 +1,531 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="518pt" height="983pt"
|
||||
viewBox="0.00 0.00 517.94 983.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 983)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-983 517.944,-983 517.944,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-975 509.944,-975 509.944,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="258.972" y="-954.8" font-family="Arial" font-size="18.00" fill="#000000">keys_and_cert</text>
|
||||
</g>
|
||||
<g id="clust6" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert</title>
|
||||
<g id="a_clust6"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert">
|
||||
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M82.9783,-421C82.9783,-421 172.8647,-421 172.8647,-421 178.8647,-421 184.8647,-427 184.8647,-433 184.8647,-433 184.8647,-487 184.8647,-487 184.8647,-493 178.8647,-499 172.8647,-499 172.8647,-499 82.9783,-499 82.9783,-499 76.9783,-499 70.9783,-493 70.9783,-487 70.9783,-487 70.9783,-433 70.9783,-433 70.9783,-427 76.9783,-421 82.9783,-421"/>
|
||||
<text text-anchor="middle" x="127.9215" y="-429.5" font-family="Arial" font-size="15.00" fill="#222222">(KeysAndCert)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate</title>
|
||||
<g id="a_clust5"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M316.843,-554C316.843,-554 489.944,-554 489.944,-554 495.944,-554 501.944,-560 501.944,-566 501.944,-566 501.944,-925 501.944,-925 501.944,-931 495.944,-937 489.944,-937 489.944,-937 316.843,-937 316.843,-937 310.843,-937 304.843,-931 304.843,-925 304.843,-925 304.843,-566 304.843,-566 304.843,-560 310.843,-554 316.843,-554"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-562.5" font-family="Arial" font-size="15.00" fill="#222222">(KeyCertificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
|
||||
<g id="a_clust4"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M376.7329,-329C376.7329,-329 431.0541,-329 431.0541,-329 437.0541,-329 443.0541,-335 443.0541,-341 443.0541,-341 443.0541,-395 443.0541,-395 443.0541,-401 437.0541,-407 431.0541,-407 431.0541,-407 376.7329,-407 376.7329,-407 370.7329,-407 364.7329,-401 364.7329,-395 364.7329,-395 364.7329,-341 364.7329,-341 364.7329,-335 370.7329,-329 376.7329,-329"/>
|
||||
<text text-anchor="middle" x="403.8935" y="-337.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/logger.Logger</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/go-i2p/logger.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M364.2841,-121C364.2841,-121 442.5029,-121 442.5029,-121 448.5029,-121 454.5029,-127 454.5029,-133 454.5029,-133 454.5029,-309 454.5029,-309 454.5029,-315 448.5029,-321 442.5029,-321 442.5029,-321 364.2841,-321 364.2841,-321 358.2841,-321 352.2841,-315 352.2841,-309 352.2841,-309 352.2841,-133 352.2841,-133 352.2841,-127 358.2841,-121 364.2841,-121"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-129.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/common/certificate.Certificate">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M366.4152,-415C366.4152,-415 441.3718,-415 441.3718,-415 447.3718,-415 453.3718,-421 453.3718,-427 453.3718,-427 453.3718,-481 453.3718,-481 453.3718,-487 447.3718,-493 441.3718,-493 441.3718,-493 366.4152,-493 366.4152,-493 360.4152,-493 354.4152,-487 354.4152,-481 354.4152,-481 354.4152,-427 354.4152,-427 354.4152,-421 360.4152,-415 366.4152,-415"/>
|
||||
<text text-anchor="middle" x="403.8935" y="-423.5" font-family="Arial" font-size="15.00" fill="#222222">(*Certificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142 at keys_and_cert.go:194: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType] at keys_and_cert.go:161: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:172: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:188: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:184: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey] at keys_and_cert.go:155: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:193: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType] at keys_and_cert.go:145: calling [(*github.com/sirupsen/logrus.Logger).Debug] at keys_and_cert.go:197: calling [(*github.com/sirupsen/logrus.Logger).Debug] at keys_and_cert.go:159: calling [github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate] at keys_and_cert.go:167: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize] at keys_and_cert.go:143: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:149: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:192: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:154: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:161: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:172: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:188: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:166: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize] at keys_and_cert.go:170: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M180.6624,-693C180.6624,-693 75.1806,-693 75.1806,-693 69.1806,-693 63.1806,-687 63.1806,-681 63.1806,-681 63.1806,-669 63.1806,-669 63.1806,-663 69.1806,-657 75.1806,-657 75.1806,-657 180.6624,-657 180.6624,-657 186.6624,-657 192.6624,-663 192.6624,-669 192.6624,-669 192.6624,-681 192.6624,-681 192.6624,-687 186.6624,-693 180.6624,-693"/>
|
||||
<text text-anchor="middle" x="127.9215" y="-670.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCert</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/samber/oops.Errorf -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/samber/oops.Errorf</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M420.5888,-113C420.5888,-113 386.1982,-113 386.1982,-113 380.1982,-113 374.1982,-107 374.1982,-101 374.1982,-101 374.1982,-89 374.1982,-89 374.1982,-83 380.1982,-77 386.1982,-77 386.1982,-77 420.5888,-77 420.5888,-77 426.5888,-77 432.5888,-83 432.5888,-89 432.5888,-89 432.5888,-101 432.5888,-101 432.5888,-107 426.5888,-113 420.5888,-113"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->github.com/samber/oops.Errorf -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge8"><a xlink:title="at keys_and_cert.go:155: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M143.8627,-656.5842C168.659,-626.8653 216.0827,-565.521 239.843,-505 271.7913,-423.623 244.7054,-180.4538 304.843,-117 319.9046,-101.1079 343.7276,-95.4861 364.1779,-93.896"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="364.379,-97.3905 374.1957,-93.4052 364.0364,-90.3989 364.379,-97.3905"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate | defined in key_certificate.go:356">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M457.7212,-546C457.7212,-546 349.0658,-546 349.0658,-546 343.0658,-546 337.0658,-540 337.0658,-534 337.0658,-534 337.0658,-522 337.0658,-522 337.0658,-516 343.0658,-510 349.0658,-510 349.0658,-510 457.7212,-510 457.7212,-510 463.7212,-510 469.7212,-516 469.7212,-522 469.7212,-522 469.7212,-534 469.7212,-534 469.7212,-540 463.7212,-546 457.7212,-546"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-532.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-515.4" font-family="Verdana" font-size="14.00" fill="#000000">NewKeyCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate</title>
|
||||
<g id="a_edge15"><a xlink:title="at keys_and_cert.go:159: calling [github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M192.97,-674.8638C221.8889,-671.5212 254.395,-662.7751 276.843,-642 308.2115,-612.9693 273.4972,-579.0553 304.843,-550 311.3352,-543.9822 319.1006,-539.4824 327.3843,-536.136"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="328.6168,-539.4132 336.9169,-532.8284 326.3221,-532.7999 328.6168,-539.4132"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="node11" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_node11"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithFields | defined in log.go:60">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M434.6126,-252C434.6126,-252 372.1744,-252 372.1744,-252 366.1744,-252 360.1744,-246 360.1744,-240 360.1744,-240 360.1744,-228 360.1744,-228 360.1744,-222 366.1744,-216 372.1744,-216 372.1744,-216 434.6126,-216 434.6126,-216 440.6126,-216 446.6126,-222 446.6126,-228 446.6126,-228 446.6126,-240 446.6126,-240 446.6126,-246 440.6126,-252 434.6126,-252"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge19"><a xlink:title="at keys_and_cert.go:143: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:149: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:192: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M166.7371,-656.9252C201.9987,-638.2568 252.1576,-605.5781 276.843,-561 308.9578,-503.0055 262.9195,-315.3531 304.843,-264 316.0468,-250.2762 333.3358,-242.6814 350.3232,-238.5271"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="351.1673,-241.9265 360.242,-236.4584 349.7381,-235.0739 351.1673,-241.9265"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="node12" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_node12"><a xlink:title="(*github.com/go-i2p/logger.Logger).Error | defined in log.go:42">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M421.1598,-191C421.1598,-191 385.6272,-191 385.6272,-191 379.6272,-191 373.6272,-185 373.6272,-179 373.6272,-179 373.6272,-167 373.6272,-167 373.6272,-161 379.6272,-155 385.6272,-155 385.6272,-155 421.1598,-155 421.1598,-155 427.1598,-155 433.1598,-161 433.1598,-167 433.1598,-167 433.1598,-179 433.1598,-179 433.1598,-185 427.1598,-191 421.1598,-191"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge20"><a xlink:title="at keys_and_cert.go:154: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:161: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:172: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:188: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M157.5401,-656.8334C192.8637,-633.3427 250.4401,-588.8608 276.843,-534 308.8552,-467.4842 258.4356,-260.4063 304.843,-203 318.886,-185.6287 342.6844,-178.0668 363.3765,-174.8776"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="364.0468,-178.3211 373.5362,-173.6093 363.1797,-171.375 364.0468,-178.3211"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="node13" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_node13"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithError | defined in log.go:66">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M431.925,-313C431.925,-313 374.862,-313 374.862,-313 368.862,-313 362.862,-307 362.862,-301 362.862,-301 362.862,-289 362.862,-289 362.862,-283 368.862,-277 374.862,-277 374.862,-277 431.925,-277 431.925,-277 437.925,-277 443.925,-283 443.925,-289 443.925,-289 443.925,-301 443.925,-301 443.925,-307 437.925,-313 431.925,-313"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-299.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-282.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_edge4"><a xlink:title="at keys_and_cert.go:161: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:172: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:188: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M183.7946,-656.9047C216.4688,-643.2906 255.3921,-621.1975 276.843,-588 341.1192,-488.5262 228.5804,-413.6117 304.843,-323 316.6193,-309.0079 334.8337,-301.7386 352.4149,-298.0489"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="353.3895,-301.4318 362.6397,-296.2663 352.1872,-294.5359 353.3895,-301.4318"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="node14" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_node14"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M422.2155,-399C422.2155,-399 384.5715,-399 384.5715,-399 378.5715,-399 372.5715,-393 372.5715,-387 372.5715,-387 372.5715,-375 372.5715,-375 372.5715,-369 378.5715,-363 384.5715,-363 384.5715,-363 422.2155,-363 422.2155,-363 428.2155,-363 434.2155,-369 434.2155,-375 434.2155,-375 434.2155,-387 434.2155,-387 434.2155,-393 428.2155,-399 422.2155,-399"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-385.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-368.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge14"><a xlink:title="at keys_and_cert.go:145: calling [(*github.com/sirupsen/logrus.Logger).Debug] at keys_and_cert.go:197: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M192.7169,-664.3298C222.8565,-655.9798 256.4681,-641.1747 276.843,-615 333.5988,-542.0887 244.2982,-478.7969 304.843,-409 319.1007,-392.5635 342.2361,-385.4419 362.5088,-382.486"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="362.9564,-385.9576 372.4822,-381.3197 362.1433,-379.005 362.9564,-385.9576"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
|
||||
<g id="node15" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
|
||||
<g id="a_node15"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize | defined in key_certificate.go:336">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M445.0648,-685C445.0648,-685 361.7222,-685 361.7222,-685 355.7222,-685 349.7222,-679 349.7222,-673 349.7222,-673 349.7222,-661 349.7222,-661 349.7222,-655 355.7222,-649 361.7222,-649 361.7222,-649 445.0648,-649 445.0648,-649 451.0648,-649 457.0648,-655 457.0648,-661 457.0648,-661 457.0648,-673 457.0648,-673 457.0648,-679 451.0648,-685 445.0648,-685"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-671.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-654.4" font-family="Verdana" font-size="14.00" fill="#000000">CryptoSize</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
|
||||
<g id="a_edge21"><a xlink:title="at keys_and_cert.go:166: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
|
||||
<path fill="none" stroke="#8b4513" d="M192.6966,-691.3183C218.7969,-696.016 249.2118,-699.1254 276.843,-696 297.5359,-693.6594 319.7758,-689.231 339.7508,-684.5266"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="340.7669,-687.8818 349.6628,-682.1273 339.12,-681.0783 340.7669,-687.8818"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
|
||||
<g id="node16" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
|
||||
<g id="a_node16"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize | defined in key_certificate.go:308">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M445.0648,-624C445.0648,-624 361.7222,-624 361.7222,-624 355.7222,-624 349.7222,-618 349.7222,-612 349.7222,-612 349.7222,-600 349.7222,-600 349.7222,-594 355.7222,-588 361.7222,-588 361.7222,-588 445.0648,-588 445.0648,-588 451.0648,-588 457.0648,-594 457.0648,-600 457.0648,-600 457.0648,-612 457.0648,-612 457.0648,-618 451.0648,-624 445.0648,-624"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-610.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-593.4" font-family="Verdana" font-size="14.00" fill="#000000">SignatureSize</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
|
||||
<g id="a_edge16"><a xlink:title="at keys_and_cert.go:167: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]">
|
||||
<path fill="none" stroke="#8b4513" d="M192.9302,-683.3546C220.0593,-684.1156 251.1657,-681.2808 276.843,-669 293.8915,-660.8461 289.0186,-647.3307 304.843,-637 315.4495,-630.0758 327.7038,-624.6127 339.8897,-620.3316"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="341.2013,-623.585 349.6151,-617.1462 339.0224,-616.9327 341.2013,-623.585"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey -->
|
||||
<g id="node17" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey</title>
|
||||
<g id="a_node17"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey | defined in key_certificate.go:136">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M459.9315,-868C459.9315,-868 346.8555,-868 346.8555,-868 340.8555,-868 334.8555,-862 334.8555,-856 334.8555,-856 334.8555,-844 334.8555,-844 334.8555,-838 340.8555,-832 346.8555,-832 346.8555,-832 459.9315,-832 459.9315,-832 465.9315,-832 471.9315,-838 471.9315,-844 471.9315,-844 471.9315,-856 471.9315,-856 471.9315,-862 465.9315,-868 459.9315,-868"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-854.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-837.4" font-family="Verdana" font-size="14.00" fill="#000000">ConstructPublicKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey</title>
|
||||
<g id="a_edge29"><a xlink:title="at keys_and_cert.go:170: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey]">
|
||||
<path fill="none" stroke="#8b4513" d="M145.2786,-693.2912C175.1374,-723.7533 239.3534,-784.9819 304.843,-820 311.2403,-823.4207 318.0845,-826.5106 325.0734,-829.2886"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="324.0727,-832.6513 334.665,-832.8853 326.5305,-826.097 324.0727,-832.6513"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey -->
|
||||
<g id="node18" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey</title>
|
||||
<g id="a_node18"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey | defined in key_certificate.go:228">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M481.9945,-929C481.9945,-929 324.7925,-929 324.7925,-929 318.7925,-929 312.7925,-923 312.7925,-917 312.7925,-917 312.7925,-905 312.7925,-905 312.7925,-899 318.7925,-893 324.7925,-893 324.7925,-893 481.9945,-893 481.9945,-893 487.9945,-893 493.9945,-899 493.9945,-905 493.9945,-905 493.9945,-917 493.9945,-917 493.9945,-923 487.9945,-929 481.9945,-929"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-915.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-898.4" font-family="Verdana" font-size="14.00" fill="#000000">ConstructSigningPublicKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey</title>
|
||||
<g id="a_edge5"><a xlink:title="at keys_and_cert.go:184: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey]">
|
||||
<path fill="none" stroke="#8b4513" d="M138.4625,-693.1607C162.6348,-733.2019 226.0876,-829.588 304.843,-881 309.1779,-883.8298 313.7924,-886.4033 318.5678,-888.7421"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="317.3636,-892.0384 327.9186,-892.9564 320.2399,-885.6566 317.3636,-892.0384"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType -->
|
||||
<g id="node19" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
|
||||
<g id="a_node19"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType | defined in key_certificate.go:126">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M447.2604,-746C447.2604,-746 359.5266,-746 359.5266,-746 353.5266,-746 347.5266,-740 347.5266,-734 347.5266,-734 347.5266,-722 347.5266,-722 347.5266,-716 353.5266,-710 359.5266,-710 359.5266,-710 447.2604,-710 447.2604,-710 453.2604,-710 459.2604,-716 459.2604,-722 459.2604,-722 459.2604,-734 459.2604,-734 459.2604,-740 453.2604,-746 447.2604,-746"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-732.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-715.4" font-family="Verdana" font-size="14.00" fill="#000000">PublicKeyType</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
|
||||
<g id="a_edge9"><a xlink:title="at keys_and_cert.go:193: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
|
||||
<path fill="none" stroke="#8b4513" d="M192.8557,-687.4931C236.389,-695.8688 293.5386,-706.8642 337.309,-715.2855"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="336.8,-718.7517 347.2812,-717.2042 338.1226,-711.8778 336.8,-718.7517"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType -->
|
||||
<g id="node20" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
|
||||
<g id="a_node20"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType | defined in key_certificate.go:117">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M469.3247,-807C469.3247,-807 337.4623,-807 337.4623,-807 331.4623,-807 325.4623,-801 325.4623,-795 325.4623,-795 325.4623,-783 325.4623,-783 325.4623,-777 331.4623,-771 337.4623,-771 337.4623,-771 469.3247,-771 469.3247,-771 475.3247,-771 481.3247,-777 481.3247,-783 481.3247,-783 481.3247,-795 481.3247,-795 481.3247,-801 475.3247,-807 469.3247,-807"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-793.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-776.4" font-family="Verdana" font-size="14.00" fill="#000000">SigningPublicKeyType</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
|
||||
<g id="a_edge1"><a xlink:title="at keys_and_cert.go:194: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]">
|
||||
<path fill="none" stroke="#8b4513" d="M162.1682,-693.1217C197.3304,-711.2817 253.9512,-739.2968 304.843,-759 312.8408,-762.0964 321.3002,-765.0854 329.7677,-767.8986"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="328.715,-771.2366 339.3071,-770.9965 330.8771,-764.5789 328.715,-771.2366"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructSigningPublicKey -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructSigningPublicKey</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructSigningPublicKey | defined in keys_and_cert.go:285 at keys_and_cert.go:294: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:289: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M204.9005,-174C204.9005,-174 50.9425,-174 50.9425,-174 44.9425,-174 38.9425,-168 38.9425,-162 38.9425,-162 38.9425,-150 38.9425,-150 38.9425,-144 44.9425,-138 50.9425,-138 50.9425,-138 204.9005,-138 204.9005,-138 210.9005,-138 216.9005,-144 216.9005,-150 216.9005,-150 216.9005,-162 216.9005,-162 216.9005,-168 210.9005,-174 204.9005,-174"/>
|
||||
<text text-anchor="middle" x="127.9215" y="-151.8" font-family="Verdana" font-size="14.00" fill="#000000">constructSigningPublicKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructSigningPublicKey->github.com/samber/oops.Errorf -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructSigningPublicKey->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge30"><a xlink:title="at keys_and_cert.go:294: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:289: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M193.0243,-137.9766C208.3786,-133.7234 224.6885,-129.2035 239.843,-125 255.8446,-120.5615 259.6133,-118.5143 275.843,-115 305.2057,-108.642 338.7862,-103.4592 364.1189,-99.9639"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="364.6464,-103.4246 374.0875,-98.6167 363.7088,-96.4876 364.6464,-103.4246"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructPublicKey -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructPublicKey</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructPublicKey | defined in keys_and_cert.go:270 at keys_and_cert.go:281: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:274: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M183.3373,-113C183.3373,-113 72.5057,-113 72.5057,-113 66.5057,-113 60.5057,-107 60.5057,-101 60.5057,-101 60.5057,-89 60.5057,-89 60.5057,-83 66.5057,-77 72.5057,-77 72.5057,-77 183.3373,-77 183.3373,-77 189.3373,-77 195.3373,-83 195.3373,-89 195.3373,-89 195.3373,-101 195.3373,-101 195.3373,-107 189.3373,-113 183.3373,-113"/>
|
||||
<text text-anchor="middle" x="127.9215" y="-90.8" font-family="Verdana" font-size="14.00" fill="#000000">constructPublicKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructPublicKey->github.com/samber/oops.Errorf -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.constructPublicKey->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge25"><a xlink:title="at keys_and_cert.go:281: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:274: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M195.3627,-89.6985C220.8813,-88.2528 250.1937,-87.2635 276.843,-88 306.0974,-88.8085 339.1122,-90.6663 364.084,-92.2649"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="364.0523,-95.7702 374.2594,-92.9303 364.5091,-88.7851 364.0523,-95.7702"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.init -->
|
||||
<g id="node6" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.init</title>
|
||||
<g id="a_node6"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.init | defined in .:0 at keys_and_cert.go:14: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M142.9215,-52C142.9215,-52 112.9215,-52 112.9215,-52 106.9215,-52 100.9215,-46 100.9215,-40 100.9215,-40 100.9215,-28 100.9215,-28 100.9215,-22 106.9215,-16 112.9215,-16 112.9215,-16 142.9215,-16 142.9215,-16 148.9215,-16 154.9215,-22 154.9215,-28 154.9215,-28 154.9215,-40 154.9215,-40 154.9215,-46 148.9215,-52 142.9215,-52"/>
|
||||
<text text-anchor="middle" x="127.9215" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="node7" class="node">
|
||||
<title>github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_node7"><a xlink:title="github.com/go-i2p/logger.GetGoI2PLogger | defined in log.go:120">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M452.083,-52C452.083,-52 354.704,-52 354.704,-52 348.704,-52 342.704,-46 342.704,-40 342.704,-40 342.704,-28 342.704,-28 342.704,-22 348.704,-16 354.704,-16 354.704,-16 452.083,-16 452.083,-16 458.083,-16 464.083,-22 464.083,-28 464.083,-28 464.083,-40 464.083,-40 464.083,-46 458.083,-52 452.083,-52"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.init->github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.init->github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_edge22"><a xlink:title="at keys_and_cert.go:14: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="none" stroke="#8b4513" d="M155.0887,-34C195.9363,-34 274.546,-34 332.4167,-34"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="332.6037,-37.5001 342.6036,-34 332.6036,-30.5001 332.6037,-37.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519 -->
|
||||
<g id="node8" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519</title>
|
||||
<g id="a_node8"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519 | defined in keys_and_cert.go:202 at keys_and_cert.go:203: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:260: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:205: calling [(*github.com/sirupsen/logrus.Logger).Debug] at keys_and_cert.go:265: calling [(*github.com/sirupsen/logrus.Logger).Debug] at keys_and_cert.go:218: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:229: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:245: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:219: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:230: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:246: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:256: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:219: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:230: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:246: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:256: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:254: calling [github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M227.7646,-235C227.7646,-235 28.0784,-235 28.0784,-235 22.0784,-235 16.0784,-229 16.0784,-223 16.0784,-223 16.0784,-211 16.0784,-211 16.0784,-205 22.0784,-199 28.0784,-199 28.0784,-199 227.7646,-199 227.7646,-199 233.7646,-199 239.7646,-205 239.7646,-211 239.7646,-211 239.7646,-223 239.7646,-223 239.7646,-229 233.7646,-235 227.7646,-235"/>
|
||||
<text text-anchor="middle" x="127.9215" y="-212.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCertElgAndEd25519</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->github.com/samber/oops.Errorf -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge10"><a xlink:title="at keys_and_cert.go:218: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:229: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:245: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M212.5176,-198.9808C222.0613,-195.3874 231.3831,-191.1025 239.843,-186 275.9199,-164.2407 268.2275,-137.8402 304.843,-117 322.8401,-106.7567 345.2113,-101.2823 364.0882,-98.3568"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="364.7318,-101.8015 374.1658,-96.9797 363.784,-94.8659 364.7318,-101.8015"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate</title>
|
||||
<g id="a_edge18"><a xlink:title="at keys_and_cert.go:254: calling [github.com/go-i2p/go-i2p/lib/common/key_certificate.NewKeyCertificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M152.985,-235.2962C177.7252,-254.4015 215.3117,-286.3687 239.843,-321 263.6588,-354.6212 262.657,-367.3175 276.843,-406 291.7054,-446.5268 274.2247,-468.5726 304.843,-499 311.3462,-505.4626 319.2114,-510.4991 327.6295,-514.4217"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="326.3633,-517.6853 336.9427,-518.2557 329.028,-511.2124 326.3633,-517.6853"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge2"><a xlink:title="at keys_and_cert.go:203: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:260: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M197.2721,-198.9469C222.3516,-194.6033 250.8809,-192.1862 276.843,-196 284.4717,-197.1206 318.9934,-207.5456 350.0558,-217.1927"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="349.3926,-220.6519 359.981,-220.2847 351.4747,-213.9687 349.3926,-220.6519"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge12"><a xlink:title="at keys_and_cert.go:219: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:230: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:246: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:256: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M222.8962,-198.9676C240.4749,-195.8282 258.6953,-192.7061 275.843,-190 304.9989,-185.3989 338.0353,-181.0188 363.1803,-177.8572"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="363.9484,-181.2887 373.4393,-176.5798 363.0834,-174.3424 363.9484,-181.2887"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->(*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_edge11"><a xlink:title="at keys_and_cert.go:219: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:230: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:246: calling [(*github.com/go-i2p/logger.Logger).WithError] at keys_and_cert.go:256: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M240.0357,-210.2228C252.9491,-212.6803 265.5262,-216.73 276.843,-223 296.1446,-233.694 287.12,-250.8543 304.843,-264 318.8008,-274.353 336.3101,-281.3098 352.6832,-285.9582"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="352.1297,-289.4308 362.6891,-288.564 353.8939,-282.6567 352.1297,-289.4308"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge6"><a xlink:title="at keys_and_cert.go:205: calling [(*github.com/sirupsen/logrus.Logger).Debug] at keys_and_cert.go:265: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M240.0563,-228.7418C253.4889,-233.7787 266.1921,-240.6576 276.843,-250 304.2186,-274.0125 281.1301,-299.3644 304.843,-327 320.2372,-344.9408 343.1376,-357.996 362.9895,-366.7711"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="361.8684,-370.0962 372.4438,-370.7377 364.5766,-363.6413 361.8684,-370.0962"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert -->
|
||||
<g id="node9" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert</title>
|
||||
<g id="a_node9"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert | defined in keys_and_cert.go:300 at keys_and_cert.go:315: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize] at keys_and_cert.go:310: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:324: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:335: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:346: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:314: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize] at keys_and_cert.go:306: calling [(*github.com/sirupsen/logrus.Logger).Debug] at keys_and_cert.go:309: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:323: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:334: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:345: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:320: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:331: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:342: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M179.8247,-369C179.8247,-369 76.0183,-369 76.0183,-369 70.0183,-369 64.0183,-363 64.0183,-357 64.0183,-357 64.0183,-345 64.0183,-345 64.0183,-339 70.0183,-333 76.0183,-333 76.0183,-333 179.8247,-333 179.8247,-333 185.8247,-333 191.8247,-339 191.8247,-345 191.8247,-345 191.8247,-357 191.8247,-357 191.8247,-363 185.8247,-369 179.8247,-369"/>
|
||||
<text text-anchor="middle" x="127.9215" y="-346.8" font-family="Verdana" font-size="14.00" fill="#000000">NewKeysAndCert</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->github.com/samber/oops.Errorf -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge7"><a xlink:title="at keys_and_cert.go:310: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:324: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:335: calling [github.com/samber/oops.Errorf] at keys_and_cert.go:346: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M152.1441,-332.7848C176.5748,-313.5026 214.2421,-281.1803 239.843,-247 259.2056,-221.1485 279.3945,-136.8893 304.843,-117 321.5858,-103.9146 344.5681,-98.2886 364.1275,-95.9917"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="364.6506,-99.4584 374.2856,-95.052 364.0057,-92.4881 364.6506,-99.4584"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge28"><a xlink:title="at keys_and_cert.go:320: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:331: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:342: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M191.7116,-348.8837C220.192,-345.1015 252.6964,-336.5574 276.843,-318 298.2784,-301.5262 284.0613,-281.2911 304.843,-264 317.7082,-253.2957 334.3362,-246.4085 350.257,-241.9781"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="351.1905,-245.3525 360.0386,-239.5249 349.4876,-238.5627 351.1905,-245.3525"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge27"><a xlink:title="at keys_and_cert.go:309: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:323: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:334: calling [(*github.com/go-i2p/logger.Logger).Error] at keys_and_cert.go:345: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M191.9642,-338.4004C221.3678,-329.6201 254.5678,-315.0105 276.843,-291 304.7572,-260.9111 275.6395,-231.8392 304.843,-203 320.3392,-187.6971 343.392,-180.1646 363.306,-176.4727"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="364.0507,-179.8983 373.377,-174.8713 362.9514,-172.9852 364.0507,-179.8983"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge26"><a xlink:title="at keys_and_cert.go:306: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M191.8127,-357.958C244.4538,-363.6908 317.5263,-371.6487 362.5692,-376.5541"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="362.2418,-380.039 372.562,-377.6423 362.9997,-373.0802 362.2418,-380.039"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
|
||||
<g id="a_edge13"><a xlink:title="at keys_and_cert.go:314: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
|
||||
<path fill="none" stroke="#8b4513" d="M177.0131,-369.0656C199.059,-379.4364 223.6889,-394.5297 239.843,-415 303.5319,-495.7057 232.5349,-563.9164 304.843,-637 314.3655,-646.6246 326.8741,-653.1804 339.77,-657.6406"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="339.0779,-661.0887 349.664,-660.6591 341.1205,-654.3933 339.0779,-661.0887"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
|
||||
<g id="a_edge3"><a xlink:title="at keys_and_cert.go:315: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]">
|
||||
<path fill="none" stroke="#8b4513" d="M191.6882,-362.1355C221.9523,-370.7126 255.9784,-385.7562 276.843,-412 325.0422,-472.6256 251.6954,-527.6622 304.843,-584 314.0457,-593.7551 326.5488,-599.6446 339.5579,-603.1076"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="339.04,-606.5773 349.5584,-605.3067 340.5435,-599.7406 339.04,-606.5773"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes -->
|
||||
<g id="node10" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes</title>
|
||||
<g id="a_node10"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes | defined in certificate.go:100">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M431.3501,-485C431.3501,-485 375.4369,-485 375.4369,-485 369.4369,-485 363.4369,-479 363.4369,-473 363.4369,-473 363.4369,-461 363.4369,-461 363.4369,-455 369.4369,-449 375.4369,-449 375.4369,-449 431.3501,-449 431.3501,-449 437.3501,-449 443.3501,-455 443.3501,-461 443.3501,-461 443.3501,-473 443.3501,-473 443.3501,-479 437.3501,-485 431.3501,-485"/>
|
||||
<text text-anchor="middle" x="403.3935" y="-471.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="403.3935" y="-454.4" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Bytes -->
|
||||
<g id="node21" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Bytes</title>
|
||||
<g id="a_node21"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Bytes | defined in keys_and_cert.go:87 at keys_and_cert.go:113: calling [(*github.com/go-i2p/logger.Logger).WithFields] at keys_and_cert.go:109: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes] at keys_and_cert.go:110: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes] at keys_and_cert.go:121: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M143.808,-491C143.808,-491 112.035,-491 112.035,-491 106.035,-491 100.035,-485 100.035,-479 100.035,-479 100.035,-467 100.035,-467 100.035,-461 106.035,-455 112.035,-455 112.035,-455 143.808,-455 143.808,-455 149.808,-455 155.808,-461 155.808,-467 155.808,-467 155.808,-479 155.808,-479 155.808,-485 149.808,-491 143.808,-491"/>
|
||||
<text text-anchor="middle" x="127.9215" y="-468.8" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Bytes->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Bytes->(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes</title>
|
||||
<g id="a_edge23"><a xlink:title="at keys_and_cert.go:109: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes] at keys_and_cert.go:110: calling [(*github.com/go-i2p/go-i2p/lib/common/certificate.Certificate).Bytes]">
|
||||
<path fill="none" stroke="#8b4513" d="M155.9212,-475.9548C185.8556,-478.7304 234.709,-482.1584 276.843,-480 302.1093,-478.7057 330.1021,-475.9668 353.3226,-473.3353"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="353.7632,-476.8078 363.2935,-472.1792 352.9568,-469.8544 353.7632,-476.8078"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Bytes->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Bytes->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge17"><a xlink:title="at keys_and_cert.go:113: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M155.98,-475.87C190.0003,-477.6345 246.5359,-474.7391 276.843,-441 330.0662,-381.7497 252.5607,-324.0821 304.843,-264 316.3746,-250.7481 333.5651,-243.2488 350.3744,-239.0387"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="351.1457,-242.4529 360.1818,-236.9213 349.6684,-235.6106 351.1457,-242.4529"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Bytes->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/keys_and_cert.KeysAndCert).Bytes->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge24"><a xlink:title="at keys_and_cert.go:121: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M155.8096,-475.9198C187.6346,-477.8339 240.0275,-476.5344 276.843,-453 296.3729,-440.5154 286.2571,-422.8509 304.843,-409 321.526,-396.5672 343.5395,-389.6503 362.5288,-385.8042"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="363.2084,-389.2382 372.4256,-384.014 361.9623,-382.35 363.2084,-389.2382"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 56 KiB |
@ -2,6 +2,7 @@ package keys_and_cert
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/ed25519"
|
||||
"crypto/rand"
|
||||
"testing"
|
||||
|
||||
@ -32,8 +33,15 @@ func TestCertificateWithMissingData(t *testing.T) {
|
||||
// createValidKeyCertificate creates a valid KeyCertificate for testing.
|
||||
func createValidKeyAndCert(t *testing.T) *KeysAndCert {
|
||||
// Generate signing key pair (Ed25519)
|
||||
var ed25519_privkey crypto.Ed25519PrivateKey
|
||||
_, err := (&ed25519_privkey).Generate()
|
||||
//var ed25519_privkey crypto.Ed25519PrivateKey
|
||||
_, priv, err := ed25519.GenerateKey(rand.Reader)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to generate Ed25519 private %s", err)
|
||||
}
|
||||
// Copy the full private key (includes public key)
|
||||
ed25519_privkey := make(crypto.Ed25519PrivateKey, ed25519.PrivateKeySize)
|
||||
copy(ed25519_privkey, priv)
|
||||
//_, err = (ed25519_privkey).Generate()
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to generate Ed25519 private key: %v\n", err)
|
||||
}
|
||||
@ -103,7 +111,7 @@ func createValidKeyAndCert(t *testing.T) *KeysAndCert {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Logf("pubkey bytes after NewKeysAndCert: %v\n", keysAndCert.signingPublicKey.Bytes())
|
||||
t.Logf("pubkey bytes after NewKeysAndCert: %v\n", keysAndCert.SigningPublic.Bytes())
|
||||
|
||||
return keysAndCert
|
||||
}
|
||||
@ -122,9 +130,9 @@ func TestCertificateWithValidDataElgAndEd25519(t *testing.T) {
|
||||
|
||||
// Compare individual fields
|
||||
assert.Equal(keysAndCert.KeyCertificate.Bytes(), parsedKeysAndCert.KeyCertificate.Bytes(), "KeyCertificates should match")
|
||||
assert.Equal(keysAndCert.publicKey.Bytes(), parsedKeysAndCert.publicKey.Bytes(), "PublicKeys should match")
|
||||
assert.Equal(keysAndCert.ReceivingPublic.Bytes(), parsedKeysAndCert.ReceivingPublic.Bytes(), "PublicKeys should match")
|
||||
assert.Equal(keysAndCert.Padding, parsedKeysAndCert.Padding, "Padding should match")
|
||||
assert.Equal(keysAndCert.signingPublicKey.Bytes(), parsedKeysAndCert.signingPublicKey.Bytes(), "SigningPublicKeys should match")
|
||||
assert.Equal(keysAndCert.SigningPublic.Bytes(), parsedKeysAndCert.SigningPublic.Bytes(), "SigningPublicKeys should match")
|
||||
}
|
||||
|
||||
func TestCertificateWithValidDataManual(t *testing.T) {
|
||||
|
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/lease"
|
||||
|
||||

|
||||
|
||||
Package lease implements the I2P lease common data structure
|
||||
|
||||
## Usage
|
||||
@ -21,17 +23,21 @@ Sizes in bytes of various components of a Lease
|
||||
type Lease [LEASE_SIZE]byte
|
||||
```
|
||||
|
||||
Lease is the represenation of an I2P Lease.
|
||||
|
||||
https://geti2p.net/spec/common-structures#lease
|
||||
|
||||
#### func NewLease
|
||||
|
||||
```go
|
||||
func NewLease(data []byte) (lease *Lease, remainder []byte, err error)
|
||||
func NewLease(tunnelGateway Hash, tunnelID uint32, expirationTime time.Time) (*Lease, error)
|
||||
```
|
||||
NewLease creates a new *NewLease from []byte using ReadLease. Returns a pointer
|
||||
to KeysAndCert unlike ReadLease.
|
||||
NewLease creates a new Lease with the provided parameters.
|
||||
|
||||
#### func NewLeaseFromBytes
|
||||
|
||||
```go
|
||||
func NewLeaseFromBytes(data []byte) (lease *Lease, remainder []byte, err error)
|
||||
```
|
||||
NewLeaseFromBytes creates a new *Lease from []byte using ReadLease. Returns a
|
||||
pointer to Lease unlike ReadLease.
|
||||
|
||||
#### func ReadLease
|
||||
|
||||
@ -61,3 +67,9 @@ TunnelGateway returns the tunnel gateway as a Hash.
|
||||
func (lease Lease) TunnelID() uint32
|
||||
```
|
||||
TunnelID returns the tunnel id as a uint23.
|
||||
|
||||
|
||||
|
||||
lease
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/lease
|
@ -3,11 +3,11 @@ package lease
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -87,7 +87,7 @@ func ReadLease(data []byte) (lease Lease, remainder []byte, err error) {
|
||||
log.WithField("input_length", len(data)).Debug("Reading Lease from bytes")
|
||||
|
||||
if len(data) < LEASE_SIZE {
|
||||
err = errors.New("error parsing lease: not enough data")
|
||||
err = oops.Errorf("error parsing lease: not enough data")
|
||||
log.WithFields(logrus.Fields{
|
||||
"data_length": len(data),
|
||||
"required_length": LEASE_SIZE,
|
||||
|
391
lib/common/lease/lease.svg
Normal file
@ -0,0 +1,391 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="675pt" height="695pt"
|
||||
viewBox="0.00 0.00 674.70 695.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 695)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-695 674.6972,-695 674.6972,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-687 667.6972,-687 667.6972,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="337.8486" y="-666.8" font-family="Arial" font-size="18.00" fill="#000000">lease</text>
|
||||
</g>
|
||||
<g id="clust6" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/lease.Lease</title>
|
||||
<g id="a_clust6"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/lease.Lease">
|
||||
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M436.3753,-510C436.3753,-510 506.8003,-510 506.8003,-510 512.8003,-510 518.8003,-516 518.8003,-522 518.8003,-522 518.8003,-637 518.8003,-637 518.8003,-643 512.8003,-649 506.8003,-649 506.8003,-649 436.3753,-649 436.3753,-649 430.3753,-649 424.3753,-643 424.3753,-637 424.3753,-637 424.3753,-522 424.3753,-522 424.3753,-516 430.3753,-510 436.3753,-510"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-518.5" font-family="Arial" font-size="15.00" fill="#222222">(Lease)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/data.Integer</title>
|
||||
<g id="a_clust5"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/data.Integer">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M599.6972,-510C599.6972,-510 647.6972,-510 647.6972,-510 653.6972,-510 659.6972,-516 659.6972,-522 659.6972,-522 659.6972,-576 659.6972,-576 659.6972,-582 653.6972,-588 647.6972,-588 647.6972,-588 599.6972,-588 599.6972,-588 593.6972,-588 587.6972,-582 587.6972,-576 587.6972,-576 587.6972,-522 587.6972,-522 587.6972,-516 593.6972,-510 599.6972,-510"/>
|
||||
<text text-anchor="middle" x="623.6972" y="-518.5" font-family="Arial" font-size="15.00" fill="#222222">(Integer)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/data.Date</title>
|
||||
<g id="a_clust4"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/data.Date">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M448.5878,-424C448.5878,-424 494.5878,-424 494.5878,-424 500.5878,-424 506.5878,-430 506.5878,-436 506.5878,-436 506.5878,-490 506.5878,-490 506.5878,-496 500.5878,-502 494.5878,-502 494.5878,-502 448.5878,-502 448.5878,-502 442.5878,-502 436.5878,-496 436.5878,-490 436.5878,-490 436.5878,-436 436.5878,-436 436.5878,-430 442.5878,-424 448.5878,-424"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-432.5" font-family="Arial" font-size="15.00" fill="#222222">(Date)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M444.9272,-338C444.9272,-338 499.2484,-338 499.2484,-338 505.2484,-338 511.2484,-344 511.2484,-350 511.2484,-350 511.2484,-404 511.2484,-404 511.2484,-410 505.2484,-416 499.2484,-416 499.2484,-416 444.9272,-416 444.9272,-416 438.9272,-416 432.9272,-410 432.9272,-404 432.9272,-404 432.9272,-350 432.9272,-350 432.9272,-344 438.9272,-338 444.9272,-338"/>
|
||||
<text text-anchor="middle" x="472.0878" y="-346.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/logger.Logger</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/logger.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M432.4784,-16C432.4784,-16 510.6972,-16 510.6972,-16 516.6972,-16 522.6972,-22 522.6972,-28 522.6972,-28 522.6972,-265 522.6972,-265 522.6972,-271 516.6972,-277 510.6972,-277 510.6972,-277 432.4784,-277 432.4784,-277 426.4784,-277 420.4784,-271 420.4784,-265 420.4784,-265 420.4784,-28 420.4784,-28 420.4784,-22 426.4784,-16 432.4784,-16"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-24.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.init -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.init</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/lease.init | defined in .:0 at lease.go:59: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M103.6445,-648C103.6445,-648 73.6445,-648 73.6445,-648 67.6445,-648 61.6445,-642 61.6445,-636 61.6445,-636 61.6445,-624 61.6445,-624 61.6445,-618 67.6445,-612 73.6445,-612 73.6445,-612 103.6445,-612 103.6445,-612 109.6445,-612 115.6445,-618 115.6445,-624 115.6445,-624 115.6445,-636 115.6445,-636 115.6445,-642 109.6445,-648 103.6445,-648"/>
|
||||
<text text-anchor="middle" x="88.6445" y="-625.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/logger.GetGoI2PLogger | defined in log.go:120">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M343.5732,-648C343.5732,-648 246.1942,-648 246.1942,-648 240.1942,-648 234.1942,-642 234.1942,-636 234.1942,-636 234.1942,-624 234.1942,-624 234.1942,-618 240.1942,-612 246.1942,-612 246.1942,-612 343.5732,-612 343.5732,-612 349.5732,-612 355.5732,-618 355.5732,-624 355.5732,-624 355.5732,-636 355.5732,-636 355.5732,-642 349.5732,-648 343.5732,-648"/>
|
||||
<text text-anchor="middle" x="294.8837" y="-634.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="294.8837" y="-617.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.init->github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.init->github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_edge14"><a xlink:title="at lease.go:59: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="none" stroke="#8b4513" d="M116.0315,-630C143.3741,-630 186.5488,-630 223.628,-630"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="223.9065,-633.5001 233.9064,-630 223.9064,-626.5001 223.9065,-633.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes | defined in lease.go:140 at lease.go:146: calling [(*github.com/go-i2p/logger.Logger).WithError] at lease.go:146: calling [(*github.com/go-i2p/logger.Logger).Error] at lease.go:153: calling [(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID] at lease.go:154: calling [(github.com/go-i2p/go-i2p/lib/common/data.Date).Time] at lease.go:141: calling [(*github.com/go-i2p/logger.Logger).WithField] at lease.go:154: calling [(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date] at lease.go:152: calling [(*github.com/go-i2p/logger.Logger).WithFields] at lease.go:144: calling [github.com/go-i2p/go-i2p/lib/common/lease.ReadLease] at lease.go:141: calling [(*github.com/sirupsen/logrus.Logger).Debug] at lease.go:156: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M149.4338,-370C149.4338,-370 27.8552,-370 27.8552,-370 21.8552,-370 15.8552,-364 15.8552,-358 15.8552,-358 15.8552,-346 15.8552,-346 15.8552,-340 21.8552,-334 27.8552,-334 27.8552,-334 149.4338,-334 149.4338,-334 155.4338,-334 161.4338,-340 161.4338,-346 161.4338,-346 161.4338,-358 161.4338,-358 161.4338,-364 155.4338,-370 149.4338,-370"/>
|
||||
<text text-anchor="middle" x="88.6445" y="-347.8" font-family="Verdana" font-size="14.00" fill="#000000">NewLeaseFromBytes</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.ReadLease -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.ReadLease</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/lease.ReadLease | defined in lease.go:86 at lease.go:94: calling [(*github.com/go-i2p/logger.Logger).Error] at lease.go:102: calling [(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID] at lease.go:91: calling [(*github.com/go-i2p/logger.Logger).WithFields] at lease.go:101: calling [(*github.com/go-i2p/logger.Logger).WithFields] at lease.go:87: calling [(*github.com/sirupsen/logrus.Logger).Debug] at lease.go:105: calling [(*github.com/sirupsen/logrus.Logger).Debug] at lease.go:103: calling [(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date] at lease.go:90: calling [github.com/samber/oops.Errorf] at lease.go:87: calling [(*github.com/go-i2p/logger.Logger).WithField] at lease.go:103: calling [(github.com/go-i2p/go-i2p/lib/common/data.Date).Time]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M325.7915,-370C325.7915,-370 263.9759,-370 263.9759,-370 257.9759,-370 251.9759,-364 251.9759,-358 251.9759,-358 251.9759,-346 251.9759,-346 251.9759,-340 257.9759,-334 263.9759,-334 263.9759,-334 325.7915,-334 325.7915,-334 331.7915,-334 337.7915,-340 337.7915,-346 337.7915,-346 337.7915,-358 337.7915,-358 337.7915,-364 331.7915,-370 325.7915,-370"/>
|
||||
<text text-anchor="middle" x="294.8837" y="-347.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadLease</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->github.com/go-i2p/go-i2p/lib/common/lease.ReadLease -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->github.com/go-i2p/go-i2p/lib/common/lease.ReadLease</title>
|
||||
<g id="a_edge16"><a xlink:title="at lease.go:144: calling [github.com/go-i2p/go-i2p/lib/common/lease.ReadLease]">
|
||||
<path fill="none" stroke="#000000" d="M161.3567,-352C187.8418,-352 217.2658,-352 241.7376,-352"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="241.8993,-355.5001 251.8993,-352 241.8992,-348.5001 241.8993,-355.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithField -->
|
||||
<g id="node7" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithField</title>
|
||||
<g id="a_node7"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithField | defined in log.go:54">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M499.8623,-208C499.8623,-208 443.3133,-208 443.3133,-208 437.3133,-208 431.3133,-202 431.3133,-196 431.3133,-196 431.3133,-184 431.3133,-184 431.3133,-178 437.3133,-172 443.3133,-172 443.3133,-172 499.8623,-172 499.8623,-172 505.8623,-172 511.8623,-178 511.8623,-184 511.8623,-184 511.8623,-196 511.8623,-196 511.8623,-202 505.8623,-208 499.8623,-208"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-194.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="471.5878" y="-177.4" font-family="Verdana" font-size="14.00" fill="#000000">WithField</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/go-i2p/logger.Logger).WithField -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/go-i2p/logger.Logger).WithField</title>
|
||||
<g id="a_edge9"><a xlink:title="at lease.go:141: calling [(*github.com/go-i2p/logger.Logger).WithField]">
|
||||
<path fill="none" stroke="#8b4513" d="M100.1767,-333.7646C121.8709,-301.3 172.2078,-234.2444 234.289,-206 294.1148,-178.7817 371.2873,-179.2255 421.1046,-183.4546"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="421.0219,-186.962 431.3037,-184.4059 421.672,-179.9923 421.0219,-186.962"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="node8" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_node8"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithFields | defined in log.go:60">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M502.8069,-147C502.8069,-147 440.3687,-147 440.3687,-147 434.3687,-147 428.3687,-141 428.3687,-135 428.3687,-135 428.3687,-123 428.3687,-123 428.3687,-117 434.3687,-111 440.3687,-111 440.3687,-111 502.8069,-111 502.8069,-111 508.8069,-111 514.8069,-117 514.8069,-123 514.8069,-123 514.8069,-135 514.8069,-135 514.8069,-141 508.8069,-147 502.8069,-147"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-133.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="471.5878" y="-116.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge13"><a xlink:title="at lease.go:152: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M97.8504,-333.963C117.4971,-297.4537 167.2644,-214.8924 234.289,-175 290.9662,-141.2663 367.4961,-131.6152 418.1376,-129.1911"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="418.3687,-132.6848 428.2207,-128.7875 418.0887,-125.6904 418.3687,-132.6848"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="node9" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_node9"><a xlink:title="(*github.com/go-i2p/logger.Logger).Error | defined in log.go:42">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M489.3541,-269C489.3541,-269 453.8215,-269 453.8215,-269 447.8215,-269 441.8215,-263 441.8215,-257 441.8215,-257 441.8215,-245 441.8215,-245 441.8215,-239 447.8215,-233 453.8215,-233 453.8215,-233 489.3541,-233 489.3541,-233 495.3541,-233 501.3541,-239 501.3541,-245 501.3541,-245 501.3541,-257 501.3541,-257 501.3541,-263 495.3541,-269 489.3541,-269"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-255.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="471.5878" y="-238.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge5"><a xlink:title="at lease.go:146: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M157.1071,-333.9432C237.1567,-312.8304 366.9508,-278.5977 431.9072,-261.4656"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="432.9814,-264.8021 441.7581,-258.8675 431.1961,-258.0335 432.9814,-264.8021"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="node10" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_node10"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithError | defined in log.go:66">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M500.1193,-86C500.1193,-86 443.0563,-86 443.0563,-86 437.0563,-86 431.0563,-80 431.0563,-74 431.0563,-74 431.0563,-62 431.0563,-62 431.0563,-56 437.0563,-50 443.0563,-50 443.0563,-50 500.1193,-50 500.1193,-50 506.1193,-50 512.1193,-56 512.1193,-62 512.1193,-62 512.1193,-74 512.1193,-74 512.1193,-80 506.1193,-86 500.1193,-86"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-72.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="471.5878" y="-55.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_edge4"><a xlink:title="at lease.go:146: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M95.218,-333.6831C111.5803,-290.8021 158.3717,-183.4188 234.289,-129 289.9209,-89.1221 369.3726,-75.2752 420.7191,-70.4904"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="421.2461,-73.9584 430.9142,-69.625 420.654,-66.9835 421.2461,-73.9584"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="node11" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_node11"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M490.4098,-408C490.4098,-408 452.7658,-408 452.7658,-408 446.7658,-408 440.7658,-402 440.7658,-396 440.7658,-396 440.7658,-384 440.7658,-384 440.7658,-378 446.7658,-372 452.7658,-372 452.7658,-372 490.4098,-372 490.4098,-372 496.4098,-372 502.4098,-378 502.4098,-384 502.4098,-384 502.4098,-396 502.4098,-396 502.4098,-402 496.4098,-408 490.4098,-408"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-394.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="471.5878" y="-377.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge21"><a xlink:title="at lease.go:141: calling [(*github.com/sirupsen/logrus.Logger).Debug] at lease.go:156: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M160.8141,-370.0472C184.1162,-375.1506 210.1618,-380.1005 234.289,-383 302.768,-391.2296 383.1186,-391.6912 430.5587,-391.0239"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="430.7975,-394.5205 440.7384,-390.856 430.682,-387.5215 430.7975,-394.5205"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/data.Date).Time -->
|
||||
<g id="node12" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/data.Date).Time</title>
|
||||
<g id="a_node12"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/data.Date).Time | defined in date.go:47">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M486.5878,-494C486.5878,-494 456.5878,-494 456.5878,-494 450.5878,-494 444.5878,-488 444.5878,-482 444.5878,-482 444.5878,-470 444.5878,-470 444.5878,-464 450.5878,-458 456.5878,-458 456.5878,-458 486.5878,-458 486.5878,-458 492.5878,-458 498.5878,-464 498.5878,-470 498.5878,-470 498.5878,-482 498.5878,-482 498.5878,-488 492.5878,-494 486.5878,-494"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-480.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="471.5878" y="-463.4" font-family="Verdana" font-size="14.00" fill="#000000">Time</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(github.com/go-i2p/go-i2p/lib/common/data.Date).Time -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(github.com/go-i2p/go-i2p/lib/common/data.Date).Time</title>
|
||||
<g id="a_edge7"><a xlink:title="at lease.go:154: calling [(github.com/go-i2p/go-i2p/lib/common/data.Date).Time]">
|
||||
<path fill="none" stroke="#8b4513" d="M144.3277,-370.0307C223.6462,-395.7146 367.017,-442.1392 434.5303,-464.0005"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="433.7171,-467.416 444.309,-467.1669 435.8735,-460.7565 433.7171,-467.416"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID -->
|
||||
<g id="node14" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID</title>
|
||||
<g id="a_node14"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID | defined in lease.go:70 at lease.go:73: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M499.014,-580C499.014,-580 444.1616,-580 444.1616,-580 438.1616,-580 432.1616,-574 432.1616,-568 432.1616,-568 432.1616,-556 432.1616,-556 432.1616,-550 438.1616,-544 444.1616,-544 444.1616,-544 499.014,-544 499.014,-544 505.014,-544 511.014,-550 511.014,-556 511.014,-556 511.014,-568 511.014,-568 511.014,-574 505.014,-580 499.014,-580"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-557.8" font-family="Verdana" font-size="14.00" fill="#000000">TunnelID</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID</title>
|
||||
<g id="a_edge6"><a xlink:title="at lease.go:153: calling [(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID]">
|
||||
<path fill="none" stroke="#000000" d="M121.6255,-370.0862C191.1853,-408.2317 352.8181,-496.8686 429.6171,-538.9839"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="428.0993,-542.1433 438.5504,-543.8828 431.4652,-536.0056 428.0993,-542.1433"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date -->
|
||||
<g id="node15" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date</title>
|
||||
<g id="a_node15"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date | defined in lease.go:78">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M486.5878,-641C486.5878,-641 456.5878,-641 456.5878,-641 450.5878,-641 444.5878,-635 444.5878,-629 444.5878,-629 444.5878,-617 444.5878,-617 444.5878,-611 450.5878,-605 456.5878,-605 456.5878,-605 486.5878,-605 486.5878,-605 492.5878,-605 498.5878,-611 498.5878,-617 498.5878,-617 498.5878,-629 498.5878,-629 498.5878,-635 492.5878,-641 486.5878,-641"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-618.8" font-family="Verdana" font-size="14.00" fill="#000000">Date</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLeaseFromBytes->(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date</title>
|
||||
<g id="a_edge12"><a xlink:title="at lease.go:154: calling [(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date]">
|
||||
<path fill="none" stroke="#000000" d="M109.2739,-370.2555C136.9708,-394.4689 188.0534,-438.0956 234.289,-472 313.8747,-530.3598 336.5256,-541.1186 420.4784,-593 425.2922,-595.9749 430.3967,-599.0562 435.4447,-602.0609"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="434.005,-605.2754 444.3953,-607.3472 437.5648,-599.2482 434.005,-605.2754"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/samber/oops.Errorf -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/samber/oops.Errorf</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M488.7831,-330C488.7831,-330 454.3925,-330 454.3925,-330 448.3925,-330 442.3925,-324 442.3925,-318 442.3925,-318 442.3925,-306 442.3925,-306 442.3925,-300 448.3925,-294 454.3925,-294 454.3925,-294 488.7831,-294 488.7831,-294 494.7831,-294 500.7831,-300 500.7831,-306 500.7831,-306 500.7831,-318 500.7831,-318 500.7831,-324 494.7831,-330 488.7831,-330"/>
|
||||
<text text-anchor="middle" x="471.5878" y="-316.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
|
||||
<text text-anchor="middle" x="471.5878" y="-299.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->github.com/samber/oops.Errorf -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge15"><a xlink:title="at lease.go:90: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M337.6588,-342.3171C366.587,-335.7687 404.4919,-327.1883 432.5907,-320.8277"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="433.4839,-324.2141 442.4644,-318.5926 431.9384,-317.3868 433.4839,-324.2141"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(*github.com/go-i2p/logger.Logger).WithField -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(*github.com/go-i2p/logger.Logger).WithField</title>
|
||||
<g id="a_edge17"><a xlink:title="at lease.go:87: calling [(*github.com/go-i2p/logger.Logger).WithField]">
|
||||
<path fill="none" stroke="#8b4513" d="M309.8202,-333.5984C332.1151,-306.8286 376.2323,-256.4766 420.4784,-221 423.5779,-218.5148 426.8932,-216.0797 430.2906,-213.7353"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="432.3984,-216.5381 438.8283,-208.1174 428.5506,-210.6905 432.3984,-216.5381"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge8"><a xlink:title="at lease.go:91: calling [(*github.com/go-i2p/logger.Logger).WithFields] at lease.go:101: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M308.5198,-333.7011C321.0696,-316.6688 340.023,-290.4563 355.4784,-267 386.0932,-220.5367 381.1197,-199.3318 420.4784,-160 422.9387,-157.5414 425.6308,-155.1952 428.4518,-152.9742"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="430.5942,-155.7444 436.6582,-147.0566 426.4999,-150.0666 430.5942,-155.7444"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge1"><a xlink:title="at lease.go:94: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M321.1218,-333.8135C346.0516,-316.9436 384.9088,-291.6981 420.4784,-273 424.2782,-271.0026 428.2988,-269.0357 432.3491,-267.1489"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="434.0789,-270.2087 441.7637,-262.9152 431.2079,-263.8245 434.0789,-270.2087"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge10"><a xlink:title="at lease.go:87: calling [(*github.com/sirupsen/logrus.Logger).Debug] at lease.go:105: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M337.6588,-361.1987C366.0412,-367.3023 403.0647,-375.2642 430.9898,-381.2695"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="430.3212,-384.7056 440.8335,-383.3863 431.7929,-377.8621 430.3212,-384.7056"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(github.com/go-i2p/go-i2p/lib/common/data.Date).Time -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(github.com/go-i2p/go-i2p/lib/common/data.Date).Time</title>
|
||||
<g id="a_edge18"><a xlink:title="at lease.go:103: calling [(github.com/go-i2p/go-i2p/lib/common/data.Date).Time]">
|
||||
<path fill="none" stroke="#8b4513" d="M320.578,-370.0307C351.4625,-391.7035 403.3925,-428.1448 437.5774,-452.1336"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="435.6664,-455.0683 445.8625,-457.9476 439.6873,-449.3384 435.6664,-455.0683"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID</title>
|
||||
<g id="a_edge3"><a xlink:title="at lease.go:102: calling [(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID]">
|
||||
<path fill="none" stroke="#000000" d="M308.7434,-370.1622C331.4192,-399.6574 378.1669,-459.5504 420.4784,-508 428.753,-517.475 438.1342,-527.5615 446.5804,-536.421"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="444.2593,-539.057 453.7108,-543.8445 449.3077,-534.2079 444.2593,-539.057"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.ReadLease->(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date</title>
|
||||
<g id="a_edge11"><a xlink:title="at lease.go:103: calling [(github.com/go-i2p/go-i2p/lib/common/lease.Lease).Date]">
|
||||
<path fill="none" stroke="#000000" d="M300.4209,-370.1055C314.376,-413.2656 354.643,-523.762 420.4784,-593 424.8984,-597.6485 430.1968,-601.8121 435.6835,-605.4513"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="433.9995,-608.5236 444.3614,-610.7327 437.6387,-602.5439 433.9995,-608.5236"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLease -->
|
||||
<g id="node6" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLease</title>
|
||||
<g id="a_node6"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/lease.NewLease | defined in lease.go:111 at lease.go:112: calling [(*github.com/sirupsen/logrus.Logger).Debug] at lease.go:133: calling [(*github.com/sirupsen/logrus.Logger).Debug] at lease.go:130: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M324.4525,-254C324.4525,-254 265.3149,-254 265.3149,-254 259.3149,-254 253.3149,-248 253.3149,-242 253.3149,-242 253.3149,-230 253.3149,-230 253.3149,-224 259.3149,-218 265.3149,-218 265.3149,-218 324.4525,-218 324.4525,-218 330.4525,-218 336.4525,-224 336.4525,-230 336.4525,-230 336.4525,-242 336.4525,-242 336.4525,-248 330.4525,-254 324.4525,-254"/>
|
||||
<text text-anchor="middle" x="294.8837" y="-231.8" font-family="Verdana" font-size="14.00" fill="#000000">NewLease</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLease->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLease->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge20"><a xlink:title="at lease.go:130: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M313.4696,-217.8123C331.9694,-200.5161 361.811,-174.724 391.4784,-158 399.9895,-153.2022 409.4419,-148.9495 418.7832,-145.2801"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="420.2944,-148.4518 428.4335,-141.669 417.8411,-141.8957 420.2944,-148.4518"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/lease.NewLease->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/lease.NewLease->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge19"><a xlink:title="at lease.go:112: calling [(*github.com/sirupsen/logrus.Logger).Debug] at lease.go:133: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M308.1096,-254.0083C329.2087,-281.6794 372.977,-334.9156 420.4784,-368 423.9564,-370.4224 427.7435,-372.6607 431.6316,-374.7068"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="430.262,-377.9321 440.7891,-379.1285 433.3058,-371.6285 430.262,-377.9321"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="node13" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_node13"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int | defined in integer.go:32">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M638.6972,-580C638.6972,-580 608.6972,-580 608.6972,-580 602.6972,-580 596.6972,-574 596.6972,-568 596.6972,-568 596.6972,-556 596.6972,-556 596.6972,-550 602.6972,-544 608.6972,-544 608.6972,-544 638.6972,-544 638.6972,-544 644.6972,-544 650.6972,-550 650.6972,-556 650.6972,-556 650.6972,-568 650.6972,-568 650.6972,-574 644.6972,-580 638.6972,-580"/>
|
||||
<text text-anchor="middle" x="623.6972" y="-566.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="623.6972" y="-549.4" font-family="Verdana" font-size="14.00" fill="#000000">Int</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/lease.Lease).TunnelID->(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int</title>
|
||||
<g id="a_edge2"><a xlink:title="at lease.go:73: calling [(github.com/go-i2p/go-i2p/lib/common/data.Integer).Int]">
|
||||
<path fill="none" stroke="#8b4513" d="M511.1557,-562C534.257,-562 563.2443,-562 586.0141,-562"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="586.3165,-565.5001 596.3164,-562 586.3164,-558.5001 586.3165,-565.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 34 KiB |
@ -2,6 +2,7 @@ package lease
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
@ -14,7 +15,7 @@ func TestTunnelGateway(t *testing.T) {
|
||||
|
||||
var lease_bytes []byte
|
||||
lease_bytes = append(lease_bytes, expectedTunnelGatewayBytes...)
|
||||
lease_bytes = append(lease_bytes, make([]byte, LEASE_SIZE - LEASE_TUNNEL_GW_SIZE)...)
|
||||
lease_bytes = append(lease_bytes, make([]byte, LEASE_SIZE-LEASE_TUNNEL_GW_SIZE)...)
|
||||
lease := Lease(lease_bytes)
|
||||
|
||||
tunnelGateway := lease.TunnelGateway()
|
||||
@ -29,7 +30,7 @@ func TestTunnelID(t *testing.T) {
|
||||
var lease_bytes []byte
|
||||
lease_bytes = append(lease_bytes, make([]byte, LEASE_TUNNEL_GW_SIZE)...)
|
||||
lease_bytes = append(lease_bytes, expectedTunnelIDBytes...)
|
||||
lease_bytes = append(lease_bytes, make([]byte, LEASE_SIZE - LEASE_TUNNEL_ID_SIZE - LEASE_TUNNEL_GW_SIZE)...)
|
||||
lease_bytes = append(lease_bytes, make([]byte, LEASE_SIZE-LEASE_TUNNEL_ID_SIZE-LEASE_TUNNEL_GW_SIZE)...)
|
||||
lease := Lease(lease_bytes)
|
||||
|
||||
tunnelID := lease.TunnelID()
|
||||
@ -42,7 +43,7 @@ func TestDate(t *testing.T) {
|
||||
expectedDateBytes := []byte{0x21, 0x37, 0x31, 0x33, 0x16, 0x93, 0x13, 0x28}
|
||||
|
||||
var lease_bytes []byte
|
||||
lease_bytes = append(lease_bytes, make([]byte, LEASE_TUNNEL_GW_SIZE + LEASE_TUNNEL_ID_SIZE)...)
|
||||
lease_bytes = append(lease_bytes, make([]byte, LEASE_TUNNEL_GW_SIZE+LEASE_TUNNEL_ID_SIZE)...)
|
||||
lease_bytes = append(lease_bytes, expectedDateBytes...)
|
||||
lease := Lease(lease_bytes)
|
||||
|
||||
|
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/lease_set"
|
||||
|
||||

|
||||
|
||||
Package lease_set implements the I2P LeastSet common data structure
|
||||
|
||||
## Usage
|
||||
@ -15,6 +17,12 @@ const (
|
||||
```
|
||||
Sizes of various structures in an I2P LeaseSet
|
||||
|
||||
#### func ReadDestinationFromLeaseSet
|
||||
|
||||
```go
|
||||
func ReadDestinationFromLeaseSet(data []byte) (destination Destination, remainder []byte, err error)
|
||||
```
|
||||
|
||||
#### type LeaseSet
|
||||
|
||||
```go
|
||||
@ -25,6 +33,18 @@ LeaseSet is the represenation of an I2P LeaseSet.
|
||||
|
||||
https://geti2p.net/spec/common-structures#leaseset
|
||||
|
||||
#### func NewLeaseSet
|
||||
|
||||
```go
|
||||
func NewLeaseSet(
|
||||
destination Destination,
|
||||
encryptionKey crypto.RecievingPublicKey,
|
||||
signingKey crypto.SigningPublicKey,
|
||||
leases []Lease,
|
||||
signingPrivateKey crypto.SigningPrivateKey,
|
||||
) (LeaseSet, error)
|
||||
```
|
||||
|
||||
#### func (LeaseSet) Destination
|
||||
|
||||
```go
|
||||
@ -32,6 +52,12 @@ func (lease_set LeaseSet) Destination() (destination Destination, err error)
|
||||
```
|
||||
Destination returns the Destination as []byte.
|
||||
|
||||
#### func (LeaseSet) DestinationDeux
|
||||
|
||||
```go
|
||||
func (lease_set LeaseSet) DestinationDeux() (destination Destination, err error)
|
||||
```
|
||||
|
||||
#### func (LeaseSet) LeaseCount
|
||||
|
||||
```go
|
||||
@ -74,7 +100,7 @@ encountered during parsing.
|
||||
#### func (LeaseSet) Signature
|
||||
|
||||
```go
|
||||
func (lease_set LeaseSet) Signature() (signature Signature, err error)
|
||||
func (lease_set LeaseSet) Signature() (signature signature.Signature, err error)
|
||||
```
|
||||
Signature returns the signature as Signature. returns errors encountered during
|
||||
parsing.
|
||||
@ -93,3 +119,9 @@ errors encountered during parsing.
|
||||
func (lease_set LeaseSet) Verify() error
|
||||
```
|
||||
Verify returns nil
|
||||
|
||||
|
||||
|
||||
lease_set
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/lease_set
|
@ -2,12 +2,12 @@
|
||||
package lease_set
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/common/signature"
|
||||
"github.com/samber/oops"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/certificate"
|
||||
@ -175,7 +175,7 @@ func ReadDestinationFromLeaseSet(data []byte) (destination Destination, remainde
|
||||
fmt.Printf("Reading Destination from LeaseSet, input_length=%d\n", len(data))
|
||||
|
||||
if len(data) < 387 { // Minimum size of Destination (384 keys + 3 bytes for minimum certificate)
|
||||
err = errors.New("LeaseSet data too short to contain Destination")
|
||||
err = oops.Errorf("LeaseSet data too short to contain Destination")
|
||||
fmt.Printf("Error: %v\n", err)
|
||||
return
|
||||
}
|
||||
@ -199,7 +199,7 @@ func ReadDestinationFromLeaseSet(data []byte) (destination Destination, remainde
|
||||
fmt.Printf(" destinationLength: %d\n", destinationLength)
|
||||
|
||||
if len(data) < destinationLength {
|
||||
err = errors.New("LeaseSet data too short to contain full Destination")
|
||||
err = oops.Errorf("LeaseSet data too short to contain full Destination")
|
||||
fmt.Printf("Error: %v\n", err)
|
||||
return
|
||||
}
|
||||
@ -208,7 +208,7 @@ func ReadDestinationFromLeaseSet(data []byte) (destination Destination, remainde
|
||||
|
||||
keysAndCert, _, err := ReadKeysAndCert(destinationData)
|
||||
if err != nil {
|
||||
fmt.Printf("Failed to read KeysAndCert: %v\n", err) //32 / 0 error
|
||||
fmt.Printf("Failed to read KeysAndCert: %v\n", err) // 32 / 0 error
|
||||
return
|
||||
}
|
||||
|
||||
@ -237,7 +237,7 @@ func (lease_set LeaseSet) PublicKey() (public_key crypto.ElgPublicKey, err error
|
||||
"required_len": LEASE_SET_PUBKEY_SIZE,
|
||||
"reason": "not enough data",
|
||||
}).Error("error parsing public key")
|
||||
err = errors.New("error parsing public key: not enough data")
|
||||
err = oops.Errorf("error parsing public key: not enough data")
|
||||
copy(public_key[:], remainder)
|
||||
return
|
||||
}
|
||||
@ -270,7 +270,7 @@ func (lease_set LeaseSet) SigningKey() (signing_public_key crypto.SigningPublicK
|
||||
"required_len": offset + LEASE_SET_SPK_SIZE,
|
||||
"reason": "not enough data",
|
||||
}).Error("error parsing signing public key")
|
||||
err = errors.New("error parsing signing public key: not enough data")
|
||||
err = oops.Errorf("error parsing signing public key: not enough data")
|
||||
return
|
||||
}
|
||||
if cert_len == 0 {
|
||||
@ -328,7 +328,7 @@ func (lease_set LeaseSet) LeaseCount() (count int, err error) {
|
||||
"required_len": LEASE_SET_PUBKEY_SIZE + LEASE_SET_SPK_SIZE + 1,
|
||||
"reason": "not enough data",
|
||||
}).Error("error parsing lease count")
|
||||
err = errors.New("error parsing lease count: not enough data")
|
||||
err = oops.Errorf("error parsing lease count: not enough data")
|
||||
return
|
||||
}
|
||||
c := Integer([]byte{remainder[LEASE_SET_PUBKEY_SIZE+LEASE_SET_SPK_SIZE]})
|
||||
@ -339,7 +339,7 @@ func (lease_set LeaseSet) LeaseCount() (count int, err error) {
|
||||
"lease_count": count,
|
||||
"reason": "more than 16 leases",
|
||||
}).Warn("invalid lease set")
|
||||
err = errors.New("invalid lease set: more than 16 leases")
|
||||
err = oops.Errorf("invalid lease set: more than 16 leases")
|
||||
} else {
|
||||
log.WithField("lease_count", count).Debug("Retrieved LeaseCount from LeaseSet")
|
||||
}
|
||||
@ -372,7 +372,7 @@ func (lease_set LeaseSet) Leases() (leases []Lease, err error) {
|
||||
"required_len": end,
|
||||
"reason": "some leases missing",
|
||||
}).Error("error parsnig lease set")
|
||||
err = errors.New("error parsing lease set: some leases missing")
|
||||
err = oops.Errorf("error parsing lease set: some leases missing")
|
||||
return
|
||||
}
|
||||
var lease Lease
|
||||
@ -422,7 +422,7 @@ func (lease_set LeaseSet) Signature() (signature signature.Signature, err error)
|
||||
"required_len": end,
|
||||
"reason": "not enough data",
|
||||
}).Error("error parsing signatre")
|
||||
err = errors.New("error parsing signature: not enough data")
|
||||
err = oops.Errorf("error parsing signature: not enough data")
|
||||
return
|
||||
}
|
||||
signature = []byte(lease_set[start:end])
|
||||
@ -492,7 +492,7 @@ func (lease_set LeaseSet) OldestExpiration() (earliest Date, err error) {
|
||||
|
||||
func NewLeaseSet(
|
||||
destination Destination,
|
||||
encryptionKey crypto.PublicKey,
|
||||
encryptionKey crypto.RecievingPublicKey,
|
||||
signingKey crypto.SigningPublicKey,
|
||||
leases []Lease,
|
||||
signingPrivateKey crypto.SigningPrivateKey,
|
||||
@ -500,15 +500,15 @@ func NewLeaseSet(
|
||||
log.Debug("Creating new LeaseSet")
|
||||
// Validate destination size
|
||||
if len(destination.KeysAndCert.Bytes()) < 387 {
|
||||
return nil, errors.New("invalid destination: minimum size is 387 bytes")
|
||||
return nil, oops.Errorf("invalid destination: minimum size is 387 bytes")
|
||||
}
|
||||
// Validate encryption key size
|
||||
if len(encryptionKey.Bytes()) != LEASE_SET_PUBKEY_SIZE {
|
||||
return nil, errors.New("invalid encryption key size")
|
||||
return nil, oops.Errorf("invalid encryption key size")
|
||||
}
|
||||
// Validate inputs
|
||||
if len(leases) > 16 {
|
||||
return nil, errors.New("invalid lease set: more than 16 leases")
|
||||
return nil, oops.Errorf("invalid lease set: more than 16 leases")
|
||||
}
|
||||
// Validate signing key size matches certificate
|
||||
cert := destination.Certificate()
|
||||
@ -520,13 +520,13 @@ func NewLeaseSet(
|
||||
}
|
||||
expectedSize := keyCert.SignatureSize()
|
||||
if len(signingKey.Bytes()) != expectedSize {
|
||||
return nil, fmt.Errorf("invalid signing key size: got %d, expected %d",
|
||||
return nil, oops.Errorf("invalid signing key size: got %d, expected %d",
|
||||
len(signingKey.Bytes()), expectedSize)
|
||||
}
|
||||
} else {
|
||||
// Default DSA size
|
||||
if len(signingKey.Bytes()) != LEASE_SET_SPK_SIZE {
|
||||
return nil, errors.New("invalid signing key size")
|
||||
return nil, oops.Errorf("invalid signing key size")
|
||||
}
|
||||
}
|
||||
// Build LeaseSet data
|
||||
|
1256
lib/common/lease_set/lease_set.svg
Normal file
After Width: | Height: | Size: 136 KiB |
@ -3,14 +3,15 @@ package lease_set
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/rand"
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/common/destination"
|
||||
"github.com/go-i2p/go-i2p/lib/common/key_certificate"
|
||||
"github.com/go-i2p/go-i2p/lib/common/router_address"
|
||||
"github.com/go-i2p/go-i2p/lib/common/router_info"
|
||||
"github.com/go-i2p/go-i2p/lib/common/signature"
|
||||
"testing"
|
||||
"time"
|
||||
"github.com/samber/oops"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/common/data"
|
||||
"github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
|
||||
@ -23,7 +24,7 @@ import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func generateTestRouterInfo(t *testing.T) (*router_info.RouterInfo, crypto.PublicKey, crypto.SigningPublicKey, crypto.SigningPrivateKey, crypto.SigningPrivateKey, error) {
|
||||
func generateTestRouterInfo(t *testing.T) (*router_info.RouterInfo, crypto.RecievingPublicKey, crypto.SigningPublicKey, crypto.SigningPrivateKey, crypto.SigningPrivateKey, error) {
|
||||
// Generate signing key pair (Ed25519)
|
||||
var ed25519_privkey crypto.Ed25519PrivateKey
|
||||
_, err := (&ed25519_privkey).Generate()
|
||||
@ -63,7 +64,7 @@ func generateTestRouterInfo(t *testing.T) (*router_info.RouterInfo, crypto.Publi
|
||||
copy(elg_pubkey[256-len(yBytes):], yBytes)
|
||||
|
||||
// Ensure that elg_pubkey implements crypto.PublicKey interface
|
||||
var _ crypto.PublicKey = elg_pubkey
|
||||
var _ crypto.RecievingPublicKey = elg_pubkey
|
||||
|
||||
// Create KeyCertificate specifying key types
|
||||
var payload bytes.Buffer
|
||||
@ -135,13 +136,11 @@ func generateTestRouterInfo(t *testing.T) (*router_info.RouterInfo, crypto.Publi
|
||||
// Generate signing key pair for the LeaseSet (Ed25519)
|
||||
var leaseSetSigningPrivKey crypto.Ed25519PrivateKey
|
||||
_, err = leaseSetSigningPrivKey.Generate()
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to generate lease set Ed25519 private key: %v", err)
|
||||
}
|
||||
|
||||
leaseSetSigningPubKeyRaw, err := leaseSetSigningPrivKey.Public()
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to derive lease set Ed25519 public key: %v", err)
|
||||
}
|
||||
@ -176,7 +175,8 @@ func createTestLease(t *testing.T, index int, routerInfo *router_info.RouterInfo
|
||||
|
||||
return testLease, nil
|
||||
}
|
||||
func generateTestDestination(t *testing.T) (*destination.Destination, crypto.PublicKey, crypto.SigningPublicKey, crypto.SigningPrivateKey, error) {
|
||||
|
||||
func generateTestDestination(t *testing.T) (*destination.Destination, crypto.RecievingPublicKey, crypto.SigningPublicKey, crypto.SigningPrivateKey, error) {
|
||||
// Generate client signing key pair (Ed25519)
|
||||
var ed25519_privkey crypto.Ed25519PrivateKey
|
||||
_, err := (&ed25519_privkey).Generate()
|
||||
@ -274,7 +274,7 @@ func createTestLeaseSet(t *testing.T, routerInfo *router_info.RouterInfo, leaseC
|
||||
// Generate test Destination and client keys
|
||||
dest, encryptionKey, signingKey, signingPrivKey, err := generateTestDestination(t)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to generate test destination: %v", err)
|
||||
return nil, oops.Errorf("failed to generate test destination: %v", err)
|
||||
}
|
||||
|
||||
destBytes := dest.KeysAndCert.Bytes()
|
||||
|
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/router_address"
|
||||
|
||||

|
||||
|
||||
Package router_address implements the I2P RouterAddress common data structure
|
||||
|
||||
## Usage
|
||||
@ -28,6 +30,14 @@ RouterAddress is the represenation of an I2P RouterAddress.
|
||||
|
||||
https://geti2p.net/spec/common-structures#routeraddress
|
||||
|
||||
#### func NewRouterAddress
|
||||
|
||||
```go
|
||||
func NewRouterAddress(cost uint8, expiration time.Time, transportType string, options map[string]string) (*RouterAddress, error)
|
||||
```
|
||||
NewRouterAddress creates a new RouterAddress with the provided parameters.
|
||||
Returns a pointer to RouterAddress.
|
||||
|
||||
#### func ReadRouterAddress
|
||||
|
||||
```go
|
||||
@ -44,6 +54,12 @@ func (router_address RouterAddress) Bytes() []byte
|
||||
```
|
||||
Bytes returns the router address as a []byte.
|
||||
|
||||
#### func (RouterAddress) CapsString
|
||||
|
||||
```go
|
||||
func (router_address RouterAddress) CapsString() I2PString
|
||||
```
|
||||
|
||||
#### func (RouterAddress) Cost
|
||||
|
||||
```go
|
||||
@ -77,10 +93,17 @@ func (router_address RouterAddress) Host() (net.Addr, error)
|
||||
func (router_address RouterAddress) HostString() I2PString
|
||||
```
|
||||
|
||||
#### func (*RouterAddress) IPVersion
|
||||
|
||||
```go
|
||||
func (router_address *RouterAddress) IPVersion() string
|
||||
```
|
||||
IPVersion returns a string "4" for IPv4 or 6 for IPv6
|
||||
|
||||
#### func (RouterAddress) InitializationVector
|
||||
|
||||
```go
|
||||
func (router_address RouterAddress) InitializationVector() ([32]byte, error)
|
||||
func (router_address RouterAddress) InitializationVector() ([16]byte, error)
|
||||
```
|
||||
|
||||
#### func (RouterAddress) InitializationVectorString
|
||||
@ -112,7 +135,7 @@ func (router_address RouterAddress) IntroducerTagString(num int) I2PString
|
||||
```go
|
||||
func (router_address *RouterAddress) Network() string
|
||||
```
|
||||
Network implements net.Addr. It returns the transport type
|
||||
Network implements net.Addr. It returns the transport type plus 4 or 6
|
||||
|
||||
#### func (RouterAddress) Options
|
||||
|
||||
@ -177,3 +200,9 @@ I2PString.
|
||||
```go
|
||||
func (router_address *RouterAddress) UDP() bool
|
||||
```
|
||||
|
||||
|
||||
|
||||
router_address
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/router_address
|
@ -3,14 +3,13 @@ package router_address
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
@ -180,6 +179,16 @@ func (router_address RouterAddress) GetOption(key I2PString) I2PString {
|
||||
return router_address.Options().Values().Get(key)
|
||||
}
|
||||
|
||||
func (router_address RouterAddress) HasOption(key I2PString) bool {
|
||||
opt := router_address.GetOption(key)
|
||||
return opt != nil
|
||||
}
|
||||
|
||||
func (router_address RouterAddress) CheckOption(key string) bool {
|
||||
keyv, _ := ToI2PString(key)
|
||||
return router_address.HasOption(keyv)
|
||||
}
|
||||
|
||||
func (router_address RouterAddress) HostString() I2PString {
|
||||
host, _ := ToI2PString("host")
|
||||
return router_address.GetOption(host)
|
||||
@ -251,7 +260,7 @@ func (router_address RouterAddress) Host() (net.Addr, error) {
|
||||
ip := net.ParseIP(hostBytes)
|
||||
if ip == nil {
|
||||
log.Error("Failed to parse IP address")
|
||||
return nil, fmt.Errorf("null host error")
|
||||
return nil, oops.Errorf("null host error")
|
||||
}
|
||||
// return net.ResolveIPAddr("", ip.String())
|
||||
addr, err := net.ResolveIPAddr("", ip.String())
|
||||
@ -285,17 +294,17 @@ func (router_address RouterAddress) Port() (string, error) {
|
||||
func (router_address RouterAddress) StaticKey() ([32]byte, error) {
|
||||
sk := router_address.StaticKeyString()
|
||||
if len([]byte(sk)) != 32 {
|
||||
return [32]byte{}, fmt.Errorf("error: invalid static key")
|
||||
return [32]byte{}, oops.Errorf("error: invalid static key")
|
||||
}
|
||||
return [32]byte(sk), nil
|
||||
}
|
||||
|
||||
func (router_address RouterAddress) InitializationVector() ([32]byte, error) {
|
||||
func (router_address RouterAddress) InitializationVector() ([16]byte, error) {
|
||||
iv := router_address.InitializationVectorString()
|
||||
if len([]byte(iv)) != 32 {
|
||||
return [32]byte{}, fmt.Errorf("error: invalid static key")
|
||||
if len([]byte(iv)) != 16 {
|
||||
return [16]byte{}, oops.Errorf("error: invalid IV")
|
||||
}
|
||||
return [32]byte(iv), nil
|
||||
return [16]byte(iv), nil
|
||||
}
|
||||
|
||||
func (router_address RouterAddress) ProtocolVersion() (string, error) {
|
||||
@ -319,7 +328,7 @@ func ReadRouterAddress(data []byte) (router_address RouterAddress, remainder []b
|
||||
log.WithField("data_length", len(data)).Debug("Reading RouterAddress from data")
|
||||
if len(data) == 0 {
|
||||
log.WithField("at", "(RouterAddress) ReadRouterAddress").Error("error parsing RouterAddress: no data")
|
||||
err = errors.New("error parsing RouterAddress: no data")
|
||||
err = oops.Errorf("error parsing RouterAddress: no data")
|
||||
return
|
||||
}
|
||||
router_address.TransportCost, remainder, err = NewInteger(data, 1)
|
||||
|
1380
lib/common/router_address/router_address.svg
Normal file
After Width: | Height: | Size: 147 KiB |
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/router_identity"
|
||||
|
||||

|
||||
|
||||
Package router_identity implements the I2P RouterIdentity common data structure
|
||||
|
||||
## Usage
|
||||
@ -18,6 +20,12 @@ RouterIdentity is the represenation of an I2P RouterIdentity.
|
||||
|
||||
https://geti2p.net/spec/common-structures#routeridentity
|
||||
|
||||
#### func NewRouterIdentity
|
||||
|
||||
```go
|
||||
func NewRouterIdentity(publicKey crypto.RecievingPublicKey, signingPublicKey crypto.SigningPublicKey, cert certificate.Certificate, padding []byte) (*RouterIdentity, error)
|
||||
```
|
||||
|
||||
#### func ReadRouterIdentity
|
||||
|
||||
```go
|
||||
@ -26,3 +34,15 @@ func ReadRouterIdentity(data []byte) (router_identity RouterIdentity, remainder
|
||||
ReadRouterIdentity returns RouterIdentity from a []byte. The remaining bytes
|
||||
after the specified length are also returned. Returns a list of errors that
|
||||
occurred during parsing.
|
||||
|
||||
#### func (*RouterIdentity) AsDestination
|
||||
|
||||
```go
|
||||
func (router_identity *RouterIdentity) AsDestination() destination.Destination
|
||||
```
|
||||
|
||||
|
||||
|
||||
router_identity
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/router_identity
|
@ -7,7 +7,7 @@ import (
|
||||
"github.com/go-i2p/go-i2p/lib/common/key_certificate"
|
||||
. "github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
|
||||
"github.com/go-i2p/go-i2p/lib/crypto"
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -28,13 +28,13 @@ Identical to KeysAndCert.
|
||||
//
|
||||
// https://geti2p.net/spec/common-structures#routeridentity
|
||||
type RouterIdentity struct {
|
||||
KeysAndCert
|
||||
*KeysAndCert
|
||||
}
|
||||
|
||||
// ReadRouterIdentity returns RouterIdentity from a []byte.
|
||||
// The remaining bytes after the specified length are also returned.
|
||||
// Returns a list of errors that occurred during parsing.
|
||||
func ReadRouterIdentity(data []byte) (router_identity RouterIdentity, remainder []byte, err error) {
|
||||
func ReadRouterIdentity(data []byte) (router_identity *RouterIdentity, remainder []byte, err error) {
|
||||
log.WithFields(logrus.Fields{
|
||||
"input_length": len(data),
|
||||
}).Debug("Reading RouterIdentity from data")
|
||||
@ -43,7 +43,7 @@ func ReadRouterIdentity(data []byte) (router_identity RouterIdentity, remainder
|
||||
log.WithError(err).Error("Failed to read KeysAndCert for RouterIdentity")
|
||||
return
|
||||
}
|
||||
router_identity = RouterIdentity{
|
||||
router_identity = &RouterIdentity{
|
||||
keys_and_cert,
|
||||
}
|
||||
log.WithFields(logrus.Fields{
|
||||
@ -52,7 +52,7 @@ func ReadRouterIdentity(data []byte) (router_identity RouterIdentity, remainder
|
||||
return
|
||||
}
|
||||
|
||||
func NewRouterIdentity(publicKey crypto.PublicKey, signingPublicKey crypto.SigningPublicKey, cert certificate.Certificate, padding []byte) (*RouterIdentity, error) {
|
||||
func NewRouterIdentity(publicKey crypto.RecievingPublicKey, signingPublicKey crypto.SigningPublicKey, cert certificate.Certificate, padding []byte) (*RouterIdentity, error) {
|
||||
log.Debug("Creating new RouterIdentity")
|
||||
|
||||
// Step 1: Create keyCertificate from the provided certificate.
|
||||
@ -72,7 +72,7 @@ func NewRouterIdentity(publicKey crypto.PublicKey, signingPublicKey crypto.Signi
|
||||
|
||||
// Step 3: Initialize RouterIdentity with KeysAndCert.
|
||||
routerIdentity := RouterIdentity{
|
||||
KeysAndCert: *keysAndCert,
|
||||
KeysAndCert: keysAndCert,
|
||||
}
|
||||
|
||||
log.WithFields(logrus.Fields{
|
||||
|
295
lib/common/router_identity/router_identity.svg
Normal file
@ -0,0 +1,295 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="435pt" height="714pt"
|
||||
viewBox="0.00 0.00 435.23 714.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 714)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-714 435.2274,-714 435.2274,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-706 427.2274,-706 427.2274,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="217.6137" y="-685.8" font-family="Arial" font-size="18.00" fill="#000000">router_identity</text>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate</title>
|
||||
<g id="a_clust4"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M247.606,-529C247.606,-529 395.0366,-529 395.0366,-529 401.0366,-529 407.0366,-535 407.0366,-541 407.0366,-541 407.0366,-656 407.0366,-656 407.0366,-662 401.0366,-668 395.0366,-668 395.0366,-668 247.606,-668 247.606,-668 241.606,-668 235.606,-662 235.606,-656 235.606,-656 235.606,-541 235.606,-541 235.606,-535 241.606,-529 247.606,-529"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-537.5" font-family="Arial" font-size="15.00" fill="#222222">(KeyCertificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M294.6607,-182C294.6607,-182 348.9819,-182 348.9819,-182 354.9819,-182 360.9819,-188 360.9819,-194 360.9819,-194 360.9819,-248 360.9819,-248 360.9819,-254 354.9819,-260 348.9819,-260 348.9819,-260 294.6607,-260 294.6607,-260 288.6607,-260 282.6607,-254 282.6607,-248 282.6607,-248 282.6607,-194 282.6607,-194 282.6607,-188 288.6607,-182 294.6607,-182"/>
|
||||
<text text-anchor="middle" x="321.8213" y="-190.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/logger.Logger</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/logger.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M282.2119,-268C282.2119,-268 360.4307,-268 360.4307,-268 366.4307,-268 372.4307,-274 372.4307,-280 372.4307,-280 372.4307,-456 372.4307,-456 372.4307,-462 366.4307,-468 360.4307,-468 360.4307,-468 282.2119,-468 282.2119,-468 276.2119,-468 270.2119,-462 270.2119,-456 270.2119,-456 270.2119,-280 270.2119,-280 270.2119,-274 276.2119,-268 282.2119,-268"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-276.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity | defined in router_identity.go:55 at router_identity.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug] at router_identity.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug] at router_identity.go:62: calling [(*github.com/go-i2p/logger.Logger).Error] at router_identity.go:69: calling [(*github.com/go-i2p/logger.Logger).Error] at router_identity.go:80: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType] at router_identity.go:62: calling [(*github.com/go-i2p/logger.Logger).WithError] at router_identity.go:69: calling [(*github.com/go-i2p/logger.Logger).WithError] at router_identity.go:60: calling [github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate] at router_identity.go:78: calling [(*github.com/go-i2p/logger.Logger).WithFields] at router_identity.go:67: calling [github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert] at router_identity.go:79: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M137.2848,-454C137.2848,-454 29.1304,-454 29.1304,-454 23.1304,-454 17.1304,-448 17.1304,-442 17.1304,-442 17.1304,-430 17.1304,-430 17.1304,-424 23.1304,-418 29.1304,-418 29.1304,-418 137.2848,-418 137.2848,-418 143.2848,-418 149.2848,-424 149.2848,-430 149.2848,-430 149.2848,-442 149.2848,-442 149.2848,-448 143.2848,-454 137.2848,-454"/>
|
||||
<text text-anchor="middle" x="83.2076" y="-431.8" font-family="Verdana" font-size="14.00" fill="#000000">NewRouterIdentity</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate | defined in key_certificate.go:395">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M407.1336,-174C407.1336,-174 235.509,-174 235.509,-174 229.509,-174 223.509,-168 223.509,-162 223.509,-162 223.509,-150 223.509,-150 223.509,-144 229.509,-138 235.509,-138 235.509,-138 407.1336,-138 407.1336,-138 413.1336,-138 419.1336,-144 419.1336,-150 419.1336,-150 419.1336,-162 419.1336,-162 419.1336,-168 413.1336,-174 407.1336,-174"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-160.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-143.4" font-family="Verdana" font-size="14.00" fill="#000000">KeyCertificateFromCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate</title>
|
||||
<g id="a_edge7"><a xlink:title="at router_identity.go:60: calling [github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M91.9127,-417.9931C116.9545,-366.4708 189.176,-219.8907 221.6772,-181.4615"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="224.4105,-183.6793 229.0315,-174.1453 219.4736,-178.7167 224.4105,-183.6793"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert | defined in keys_and_cert.go:300">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M373.2245,-521C373.2245,-521 269.4181,-521 269.4181,-521 263.4181,-521 257.4181,-515 257.4181,-509 257.4181,-509 257.4181,-497 257.4181,-497 257.4181,-491 263.4181,-485 269.4181,-485 269.4181,-485 373.2245,-485 373.2245,-485 379.2245,-485 385.2245,-491 385.2245,-497 385.2245,-497 385.2245,-509 385.2245,-509 385.2245,-515 379.2245,-521 373.2245,-521"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-507.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-490.4" font-family="Verdana" font-size="14.00" fill="#000000">NewKeysAndCert</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert</title>
|
||||
<g id="a_edge11"><a xlink:title="at router_identity.go:67: calling [github.com/go-i2p/go-i2p/lib/common/keys_and_cert.NewKeysAndCert]">
|
||||
<path fill="none" stroke="#8b4513" d="M147.3309,-454.0429C178.2892,-462.7539 215.5946,-473.2508 247.7093,-482.2872"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="246.9223,-485.7016 257.4965,-485.0411 248.8184,-478.9633 246.9223,-485.7016"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="node8" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_node8"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithError | defined in log.go:66">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M349.8528,-338C349.8528,-338 292.7898,-338 292.7898,-338 286.7898,-338 280.7898,-332 280.7898,-326 280.7898,-326 280.7898,-314 280.7898,-314 280.7898,-308 286.7898,-302 292.7898,-302 292.7898,-302 349.8528,-302 349.8528,-302 355.8528,-302 361.8528,-308 361.8528,-314 361.8528,-314 361.8528,-326 361.8528,-326 361.8528,-332 355.8528,-338 349.8528,-338"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-324.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-307.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_edge5"><a xlink:title="at router_identity.go:62: calling [(*github.com/go-i2p/logger.Logger).WithError] at router_identity.go:69: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M116.4852,-417.7857C137.1588,-406.2385 164.1369,-390.7472 187.4152,-376 203.8706,-365.5752 205.933,-359.5923 223.4152,-351 238.2475,-343.7101 255.1749,-337.635 270.7356,-332.8508"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="272.1325,-336.0875 280.7281,-329.8934 270.146,-329.3753 272.1325,-336.0875"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="node9" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_node9"><a xlink:title="(*github.com/go-i2p/logger.Logger).Error | defined in log.go:42">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M339.0876,-399C339.0876,-399 303.555,-399 303.555,-399 297.555,-399 291.555,-393 291.555,-387 291.555,-387 291.555,-375 291.555,-375 291.555,-369 297.555,-363 303.555,-363 303.555,-363 339.0876,-363 339.0876,-363 345.0876,-363 351.0876,-369 351.0876,-375 351.0876,-375 351.0876,-387 351.0876,-387 351.0876,-393 345.0876,-399 339.0876,-399"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-385.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-368.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge2"><a xlink:title="at router_identity.go:62: calling [(*github.com/go-i2p/logger.Logger).Error] at router_identity.go:69: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M149.5355,-420.6794C191.8686,-410.9012 245.3477,-398.5485 281.2958,-390.2452"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="282.4456,-393.5718 291.4014,-387.911 280.8702,-386.7514 282.4456,-393.5718"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="node10" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_node10"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithFields | defined in log.go:60">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M352.5404,-460C352.5404,-460 290.1022,-460 290.1022,-460 284.1022,-460 278.1022,-454 278.1022,-448 278.1022,-448 278.1022,-436 278.1022,-436 278.1022,-430 284.1022,-424 290.1022,-424 290.1022,-424 352.5404,-424 352.5404,-424 358.5404,-424 364.5404,-430 364.5404,-436 364.5404,-436 364.5404,-448 364.5404,-448 364.5404,-454 358.5404,-460 352.5404,-460"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-446.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-429.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge8"><a xlink:title="at router_identity.go:78: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M149.5355,-437.6713C186.8588,-438.6118 232.846,-439.7706 267.8442,-440.6525"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="267.7832,-444.152 277.8683,-440.9051 267.9596,-437.1542 267.7832,-444.152"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="node11" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_node11"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M340.1433,-252C340.1433,-252 302.4993,-252 302.4993,-252 296.4993,-252 290.4993,-246 290.4993,-240 290.4993,-240 290.4993,-228 290.4993,-228 290.4993,-222 296.4993,-216 302.4993,-216 302.4993,-216 340.1433,-216 340.1433,-216 346.1433,-216 352.1433,-222 352.1433,-228 352.1433,-228 352.1433,-240 352.1433,-240 352.1433,-246 346.1433,-252 340.1433,-252"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge1"><a xlink:title="at router_identity.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug] at router_identity.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M111.7057,-417.9393C134.7308,-402.1267 166.6206,-377.297 187.4152,-349 212.1952,-315.2796 192.1907,-289.8594 223.4152,-262 239.0699,-248.0324 261.2498,-240.9976 280.5411,-237.4695"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="281.2727,-240.8976 290.6079,-235.8872 280.1857,-233.9825 281.2727,-240.8976"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType -->
|
||||
<g id="node12" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
|
||||
<g id="a_node12"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType | defined in key_certificate.go:126">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M365.1882,-660C365.1882,-660 277.4544,-660 277.4544,-660 271.4544,-660 265.4544,-654 265.4544,-648 265.4544,-648 265.4544,-636 265.4544,-636 265.4544,-630 271.4544,-624 277.4544,-624 277.4544,-624 365.1882,-624 365.1882,-624 371.1882,-624 377.1882,-630 377.1882,-636 377.1882,-636 377.1882,-648 377.1882,-648 377.1882,-654 371.1882,-660 365.1882,-660"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-646.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-629.4" font-family="Verdana" font-size="14.00" fill="#000000">PublicKeyType</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
|
||||
<g id="a_edge12"><a xlink:title="at router_identity.go:79: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
|
||||
<path fill="none" stroke="#8b4513" d="M92.7203,-454.1885C112.3033,-489.86 160.6058,-569.2395 223.4152,-612 233.1738,-618.6437 244.4576,-623.8592 255.8186,-627.9406"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="254.7548,-631.2752 265.3483,-631.1086 256.9631,-624.6326 254.7548,-631.2752"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType -->
|
||||
<g id="node13" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
|
||||
<g id="a_node13"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType | defined in key_certificate.go:117">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M387.2525,-599C387.2525,-599 255.3901,-599 255.3901,-599 249.3901,-599 243.3901,-593 243.3901,-587 243.3901,-587 243.3901,-575 243.3901,-575 243.3901,-569 249.3901,-563 255.3901,-563 255.3901,-563 387.2525,-563 387.2525,-563 393.2525,-563 399.2525,-569 399.2525,-575 399.2525,-575 399.2525,-587 399.2525,-587 399.2525,-593 393.2525,-599 387.2525,-599"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-585.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-568.4" font-family="Verdana" font-size="14.00" fill="#000000">SigningPublicKeyType</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
|
||||
<g id="a_edge3"><a xlink:title="at router_identity.go:80: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]">
|
||||
<path fill="none" stroke="#8b4513" d="M98.4136,-454.1929C122.1823,-481.3843 170.8877,-532.2799 223.4152,-559 226.7561,-560.6995 230.227,-562.2687 233.7825,-563.7175"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="232.7674,-567.0741 243.3602,-567.2784 235.2067,-560.5129 232.7674,-567.0741"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity | defined in router_identity.go:37 at router_identity.go:43: calling [(*github.com/go-i2p/logger.Logger).Error] at router_identity.go:38: calling [(*github.com/go-i2p/logger.Logger).WithFields] at router_identity.go:49: calling [(*github.com/go-i2p/logger.Logger).WithFields] at router_identity.go:40: calling [(*github.com/sirupsen/logrus.Logger).Debug] at router_identity.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug] at router_identity.go:41: calling [github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert] at router_identity.go:43: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M138.6234,-279C138.6234,-279 27.7918,-279 27.7918,-279 21.7918,-279 15.7918,-273 15.7918,-267 15.7918,-267 15.7918,-255 15.7918,-255 15.7918,-249 21.7918,-243 27.7918,-243 27.7918,-243 138.6234,-243 138.6234,-243 144.6234,-243 150.6234,-249 150.6234,-255 150.6234,-255 150.6234,-267 150.6234,-267 150.6234,-273 144.6234,-279 138.6234,-279"/>
|
||||
<text text-anchor="middle" x="83.2076" y="-256.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadRouterIdentity</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M374.0622,-113C374.0622,-113 268.5804,-113 268.5804,-113 262.5804,-113 256.5804,-107 256.5804,-101 256.5804,-101 256.5804,-89 256.5804,-89 256.5804,-83 262.5804,-77 268.5804,-77 268.5804,-77 374.0622,-77 374.0622,-77 380.0622,-77 386.0622,-83 386.0622,-89 386.0622,-89 386.0622,-101 386.0622,-101 386.0622,-107 380.0622,-113 374.0622,-113"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCert</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
|
||||
<g id="a_edge13"><a xlink:title="at router_identity.go:41: calling [github.com/go-i2p/go-i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
|
||||
<path fill="none" stroke="#8b4513" d="M97.1813,-242.9816C120.3918,-214.2268 169.6868,-157.9557 223.4152,-126 230.8191,-121.5964 238.9158,-117.7508 247.18,-114.4094"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="248.4486,-117.6716 256.5537,-110.8483 245.9626,-111.1279 248.4486,-117.6716"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->(*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_edge14"><a xlink:title="at router_identity.go:43: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M150.6747,-272.9895C162.9436,-275.4418 175.5953,-278.1511 187.4152,-281 215.2616,-287.7117 245.966,-296.5483 270.9409,-304.1128"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="269.9775,-307.4781 280.5637,-307.05 272.0211,-300.783 269.9775,-307.4781"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge4"><a xlink:title="at router_identity.go:43: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M135.3161,-279.0682C152.8203,-286.5087 171.8377,-296.1889 187.4152,-308 207.2762,-323.059 202.6429,-337.2252 223.4152,-351 240.6666,-362.44 262.4792,-369.6796 281.1349,-374.1732"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="280.6039,-377.6405 291.1254,-376.3963 282.1244,-370.8077 280.6039,-377.6405"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge9"><a xlink:title="at router_identity.go:38: calling [(*github.com/go-i2p/logger.Logger).WithFields] at router_identity.go:49: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M95.2196,-279.2363C117.0066,-310.9004 166.1264,-376.0918 223.4152,-412 236.8839,-420.4421 252.8878,-426.6467 268.0129,-431.147"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="267.2179,-434.5586 277.7899,-433.8646 269.0926,-427.8143 267.2179,-434.5586"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.ReadRouterIdentity->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge10"><a xlink:title="at router_identity.go:40: calling [(*github.com/sirupsen/logrus.Logger).Debug] at router_identity.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M150.4867,-253.3711C192.2932,-248.6306 244.6786,-242.6906 280.343,-238.6466"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="280.8476,-242.1119 290.3895,-237.5074 280.0588,-235.1565 280.8476,-242.1119"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.init -->
|
||||
<g id="node6" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.init</title>
|
||||
<g id="a_node6"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/router_identity.init | defined in .:0 at router_identity.go:14: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M98.2076,-52C98.2076,-52 68.2076,-52 68.2076,-52 62.2076,-52 56.2076,-46 56.2076,-40 56.2076,-40 56.2076,-28 56.2076,-28 56.2076,-22 62.2076,-16 68.2076,-16 68.2076,-16 98.2076,-16 98.2076,-16 104.2076,-16 110.2076,-22 110.2076,-28 110.2076,-28 110.2076,-40 110.2076,-40 110.2076,-46 104.2076,-52 98.2076,-52"/>
|
||||
<text text-anchor="middle" x="83.2076" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="node7" class="node">
|
||||
<title>github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_node7"><a xlink:title="github.com/go-i2p/logger.GetGoI2PLogger | defined in log.go:120">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M370.0108,-52C370.0108,-52 272.6318,-52 272.6318,-52 266.6318,-52 260.6318,-46 260.6318,-40 260.6318,-40 260.6318,-28 260.6318,-28 260.6318,-22 266.6318,-16 272.6318,-16 272.6318,-16 370.0108,-16 370.0108,-16 376.0108,-16 382.0108,-22 382.0108,-28 382.0108,-28 382.0108,-40 382.0108,-40 382.0108,-46 376.0108,-52 370.0108,-52"/>
|
||||
<text text-anchor="middle" x="321.3213" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="321.3213" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.init->github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.init->github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_edge6"><a xlink:title="at router_identity.go:14: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="none" stroke="#8b4513" d="M110.5223,-34C144.4368,-34 203.5523,-34 250.5669,-34"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="250.7058,-37.5001 260.7058,-34 250.7058,-30.5001 250.7058,-37.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 28 KiB |
@ -8,18 +8,20 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/samber/oops"
|
||||
)
|
||||
|
||||
func consolidateNetDb(sourcePath string, destPath string) error {
|
||||
// Create destination directory if it doesn't exist
|
||||
if err := os.MkdirAll(destPath, 0o755); err != nil {
|
||||
return fmt.Errorf("failed to create destination directory: %v", err)
|
||||
return oops.Errorf("failed to create destination directory: %v", err)
|
||||
}
|
||||
|
||||
// Walk through all subdirectories
|
||||
return filepath.Walk(sourcePath, func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return fmt.Errorf("error accessing path %q: %v", path, err)
|
||||
return oops.Errorf("error accessing path %q: %v", path, err)
|
||||
}
|
||||
|
||||
// Skip if it's a directory
|
||||
@ -37,7 +39,7 @@ func consolidateNetDb(sourcePath string, destPath string) error {
|
||||
|
||||
// Copy the file
|
||||
if err := copyFile(srcFile, dstFile); err != nil {
|
||||
return fmt.Errorf("failed to copy %s: %v", info.Name(), err)
|
||||
return oops.Errorf("failed to copy %s: %v", info.Name(), err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,7 +71,7 @@ func consolidateAllNetDbs(tempDir string) error {
|
||||
|
||||
// Create the temp directory
|
||||
if err := os.MkdirAll(tempDir, 0o755); err != nil {
|
||||
return fmt.Errorf("failed to create temp directory: %v", err)
|
||||
return oops.Errorf("failed to create temp directory: %v", err)
|
||||
}
|
||||
|
||||
// Try to consolidate I2P netDb
|
||||
@ -91,7 +93,7 @@ func consolidateAllNetDbs(tempDir string) error {
|
||||
|
||||
func cleanupTempDir(path string) error {
|
||||
if err := os.RemoveAll(path); err != nil {
|
||||
return fmt.Errorf("failed to cleanup temporary directory %s: %v", path, err)
|
||||
return oops.Errorf("failed to cleanup temporary directory %s: %v", path, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@ -110,7 +112,7 @@ func createTempNetDbDir() (string, error) {
|
||||
// Create the directory with appropriate permissions
|
||||
err := os.MkdirAll(tempDir, 0o755)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to create temporary directory: %v", err)
|
||||
return "", oops.Errorf("failed to create temporary directory: %v", err)
|
||||
}
|
||||
|
||||
return tempDir, nil
|
||||
@ -148,10 +150,10 @@ func Test10K(t *testing.T) {
|
||||
t.Fatalf("Failed to read temp directory: %v", err)
|
||||
}
|
||||
|
||||
for _, file := range files {
|
||||
for d, file := range files {
|
||||
if !file.IsDir() && strings.HasPrefix(file.Name(), "routerInfo-") {
|
||||
// Read the router info file
|
||||
log.Println("RI LOAD: ", file.Name())
|
||||
log.Println("RI LOAD: ", d, file.Name())
|
||||
data, err := os.ReadFile(filepath.Join(tempDir, file.Name()))
|
||||
if err != nil {
|
||||
t.Logf("Failed to read file %s: %v", file.Name(), err)
|
||||
|
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/router_info"
|
||||
|
||||

|
||||
|
||||
Package router_info implements the I2P RouterInfo common data structure
|
||||
|
||||
## Usage
|
||||
@ -28,6 +30,25 @@ RouterInfo is the represenation of an I2P RouterInfo.
|
||||
|
||||
https://geti2p.net/spec/common-structures#routerinfo
|
||||
|
||||
#### func NewRouterInfo
|
||||
|
||||
```go
|
||||
func NewRouterInfo(
|
||||
routerIdentity *RouterIdentity,
|
||||
publishedTime time.Time,
|
||||
addresses []*RouterAddress,
|
||||
options map[string]string,
|
||||
signingPrivateKey crypto.SigningPrivateKey,
|
||||
sigType int,
|
||||
) (*RouterInfo, error)
|
||||
```
|
||||
|
||||
#### func OwnedRouterInfo
|
||||
|
||||
```go
|
||||
func OwnedRouterInfo(keyCertificate key_certificate.KeyCertificate) *RouterInfo
|
||||
```
|
||||
|
||||
#### func ReadRouterInfo
|
||||
|
||||
```go
|
||||
@ -37,6 +58,12 @@ ReadRouterInfo returns RouterInfo from a []byte. The remaining bytes after the
|
||||
specified length are also returned. Returns a list of errors that occurred
|
||||
during parsing.
|
||||
|
||||
#### func (*RouterInfo) AddAddress
|
||||
|
||||
```go
|
||||
func (router_info *RouterInfo) AddAddress(address *RouterAddress)
|
||||
```
|
||||
|
||||
#### func (RouterInfo) Bytes
|
||||
|
||||
```go
|
||||
@ -57,6 +84,13 @@ func (router_info *RouterInfo) IdentHash() Hash
|
||||
```
|
||||
IndentHash returns the identity hash (sha256 sum) for this RouterInfo.
|
||||
|
||||
#### func (RouterInfo) Network
|
||||
|
||||
```go
|
||||
func (router_info RouterInfo) Network() string
|
||||
```
|
||||
Network implements net.Addr
|
||||
|
||||
#### func (RouterInfo) Options
|
||||
|
||||
```go
|
||||
@ -137,3 +171,9 @@ func (router_info RouterInfo) String() string
|
||||
```go
|
||||
func (router_info *RouterInfo) UnCongested() bool
|
||||
```
|
||||
|
||||
|
||||
|
||||
router_info
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/router_info
|
9
lib/common/router_info/new.go
Normal file
@ -0,0 +1,9 @@
|
||||
package router_info
|
||||
|
||||
import "github.com/go-i2p/go-i2p/lib/common/key_certificate"
|
||||
|
||||
func OwnedRouterInfo(keyCertificate key_certificate.KeyCertificate) *RouterInfo {
|
||||
return &RouterInfo{
|
||||
// ...
|
||||
}
|
||||
}
|
@ -3,17 +3,16 @@ package router_info
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/common/certificate"
|
||||
"github.com/samber/oops"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/crypto"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
@ -115,7 +114,7 @@ signature :: Signature
|
||||
//
|
||||
// https://geti2p.net/spec/common-structures#routerinfo
|
||||
type RouterInfo struct {
|
||||
router_identity RouterIdentity
|
||||
router_identity *RouterIdentity
|
||||
published *Date
|
||||
size *Integer
|
||||
addresses []*RouterAddress
|
||||
@ -170,7 +169,7 @@ func (router_info RouterInfo) String() string {
|
||||
|
||||
// RouterIdentity returns the router identity as *RouterIdentity.
|
||||
func (router_info *RouterInfo) RouterIdentity() *RouterIdentity {
|
||||
return &router_info.router_identity
|
||||
return router_info.router_identity
|
||||
}
|
||||
|
||||
// IndentHash returns the identity hash (sha256 sum) for this RouterInfo.
|
||||
@ -224,6 +223,10 @@ func (router_info RouterInfo) Network() string {
|
||||
return "i2p"
|
||||
}
|
||||
|
||||
func (router_info *RouterInfo) AddAddress(address *RouterAddress) {
|
||||
router_info.addresses = append(router_info.addresses, address)
|
||||
}
|
||||
|
||||
// ReadRouterInfo returns RouterInfo from a []byte.
|
||||
// The remaining bytes after the specified length are also returned.
|
||||
// Returns a list of errors that occurred during parsing.
|
||||
@ -302,7 +305,7 @@ func ReadRouterInfo(bytes []byte) (info RouterInfo, remainder []byte, err error)
|
||||
sigType, err := certificate.GetSignatureTypeFromCertificate(cert)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to get signature type from certificate")
|
||||
return RouterInfo{}, remainder, fmt.Errorf("certificate signature type error: %v", err)
|
||||
return RouterInfo{}, remainder, oops.Errorf("certificate signature type error: %v", err)
|
||||
}
|
||||
|
||||
// Enhanced signature type validation
|
||||
@ -311,7 +314,7 @@ func ReadRouterInfo(bytes []byte) (info RouterInfo, remainder []byte, err error)
|
||||
"sigType": sigType,
|
||||
"cert": cert,
|
||||
}).Error("Invalid signature type detected")
|
||||
return RouterInfo{}, remainder, fmt.Errorf("invalid signature type: %d", sigType)
|
||||
return RouterInfo{}, remainder, oops.Errorf("invalid signature type: %d", sigType)
|
||||
}
|
||||
|
||||
log.WithFields(logrus.Fields{
|
||||
@ -325,7 +328,7 @@ func ReadRouterInfo(bytes []byte) (info RouterInfo, remainder []byte, err error)
|
||||
//"required_len": MAPPING_SIZE,
|
||||
"reason": "not enough data",
|
||||
}).Error("error parsing router info")
|
||||
err = errors.New("error parsing router info: not enough data to read signature")
|
||||
err = oops.Errorf("error parsing router info: not enough data to read signature")
|
||||
}
|
||||
|
||||
log.WithFields(logrus.Fields{
|
||||
@ -407,7 +410,7 @@ func NewRouterInfo(
|
||||
|
||||
// 5. Assemble RouterInfo without signature
|
||||
routerInfo := &RouterInfo{
|
||||
router_identity: *routerIdentity,
|
||||
router_identity: routerIdentity,
|
||||
published: &publishedDate,
|
||||
size: sizeInt,
|
||||
addresses: addresses,
|
||||
|
1370
lib/common/router_info/router_info.svg
Normal file
After Width: | Height: | Size: 148 KiB |
@ -22,11 +22,12 @@ import (
|
||||
func TestCreateRouterInfo(t *testing.T) {
|
||||
// Generate signing key pair (Ed25519)
|
||||
var ed25519_privkey crypto.Ed25519PrivateKey
|
||||
_, err := (&ed25519_privkey).Generate()
|
||||
ed25519_signingprivkey, err := ed25519_privkey.Generate()
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to generate Ed25519 private key: %v\n", err)
|
||||
}
|
||||
ed25519_pubkey_raw, err := ed25519_privkey.Public()
|
||||
|
||||
ed25519_pubkey_raw, err := ed25519_signingprivkey.Public()
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to derive Ed25519 public key: %v\n", err)
|
||||
}
|
||||
@ -59,7 +60,7 @@ func TestCreateRouterInfo(t *testing.T) {
|
||||
copy(elg_pubkey[256-len(yBytes):], yBytes)
|
||||
|
||||
// Ensure that elg_pubkey implements crypto.PublicKey interface
|
||||
var _ crypto.PublicKey = elg_pubkey
|
||||
var _ crypto.RecievingPublicKey = elg_pubkey
|
||||
|
||||
// Create KeyCertificate specifying key types
|
||||
var payload bytes.Buffer
|
||||
|
@ -3,10 +3,11 @@ package router_info
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/rand"
|
||||
"github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/common/certificate"
|
||||
"github.com/go-i2p/go-i2p/lib/common/data"
|
||||
"github.com/go-i2p/go-i2p/lib/common/key_certificate"
|
||||
@ -59,7 +60,7 @@ func generateTestRouterInfo(t *testing.T, publishedTime time.Time) (*RouterInfo,
|
||||
copy(elg_pubkey[256-len(yBytes):], yBytes)
|
||||
|
||||
// Ensure that elg_pubkey implements crypto.PublicKey interface
|
||||
var _ crypto.PublicKey = elg_pubkey
|
||||
var _ crypto.RecievingPublicKey = elg_pubkey
|
||||
|
||||
// Create KeyCertificate specifying key types
|
||||
var payload bytes.Buffer
|
||||
|
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/session_key"
|
||||
|
||||

|
||||
|
||||
Package session_key implements the I2P SessionKey common data structure
|
||||
|
||||
## Usage
|
||||
@ -32,3 +34,9 @@ func ReadSessionKey(bytes []byte) (info SessionKey, remainder []byte, err error)
|
||||
ReadSessionKey returns SessionKey from a []byte. The remaining bytes after the
|
||||
specified length are also returned. Returns a list of errors that occurred
|
||||
during parsing.
|
||||
|
||||
|
||||
|
||||
session_key
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/session_key
|
167
lib/common/session_key/session_key.svg
Normal file
@ -0,0 +1,167 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="472pt" height="428pt"
|
||||
viewBox="0.00 0.00 472.39 428.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 428)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-428 472.3858,-428 472.3858,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-420 464.3858,-420 464.3858,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="236.1929" y="-399.8" font-family="Arial" font-size="18.00" fill="#000000">session_key</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Entry</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/sirupsen/logrus.Entry">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M238.2974,-243C238.2974,-243 291.6186,-243 291.6186,-243 297.6186,-243 303.6186,-249 303.6186,-255 303.6186,-255 303.6186,-370 303.6186,-370 303.6186,-376 297.6186,-382 291.6186,-382 291.6186,-382 238.2974,-382 238.2974,-382 232.2974,-382 226.2974,-376 226.2974,-370 226.2974,-370 226.2974,-255 226.2974,-255 226.2974,-249 232.2974,-243 238.2974,-243"/>
|
||||
<text text-anchor="middle" x="264.958" y="-251.5" font-family="Arial" font-size="15.00" fill="#222222">(*Entry)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_key.ReadSessionKey -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_key.ReadSessionKey</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/session_key.ReadSessionKey | defined in session_key.go:25 at session_key.go:27: calling [github.com/sirupsen/logrus.Warn]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M312.3221,-52C312.3221,-52 217.5939,-52 217.5939,-52 211.5939,-52 205.5939,-46 205.5939,-40 205.5939,-40 205.5939,-28 205.5939,-28 205.5939,-22 211.5939,-16 217.5939,-16 217.5939,-16 312.3221,-16 312.3221,-16 318.3221,-16 324.3221,-22 324.3221,-28 324.3221,-28 324.3221,-40 324.3221,-40 324.3221,-46 318.3221,-52 312.3221,-52"/>
|
||||
<text text-anchor="middle" x="264.958" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadSessionKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/sirupsen/logrus.Warn -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/sirupsen/logrus.Warn</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/sirupsen/logrus.Warn | defined in exported.go:113">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M444.3837,-52C444.3837,-52 409.3921,-52 409.3921,-52 403.3921,-52 397.3921,-46 397.3921,-40 397.3921,-40 397.3921,-28 397.3921,-28 397.3921,-22 403.3921,-16 409.3921,-16 409.3921,-16 444.3837,-16 444.3837,-16 450.3837,-16 456.3837,-22 456.3837,-28 456.3837,-28 456.3837,-40 456.3837,-40 456.3837,-46 450.3837,-52 444.3837,-52"/>
|
||||
<text text-anchor="middle" x="426.8879" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="426.8879" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_key.ReadSessionKey->github.com/sirupsen/logrus.Warn -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_key.ReadSessionKey->github.com/sirupsen/logrus.Warn</title>
|
||||
<g id="a_edge7"><a xlink:title="at session_key.go:27: calling [github.com/sirupsen/logrus.Warn]">
|
||||
<path fill="none" stroke="#8b4513" d="M324.3352,-34C345.2029,-34 368.1346,-34 387.0117,-34"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="387.0431,-37.5001 397.043,-34 387.043,-30.5001 387.0431,-37.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey | defined in session_key.go:33 at session_key.go:34: calling [github.com/sirupsen/logrus.WithField] at session_key.go:34: calling [(*github.com/sirupsen/logrus.Entry).Debug] at session_key.go:35: calling [github.com/go-i2p/go-i2p/lib/common/session_key.ReadSessionKey] at session_key.go:37: calling [github.com/sirupsen/logrus.WithError] at session_key.go:37: calling [(*github.com/sirupsen/logrus.Entry).Error] at session_key.go:41: calling [github.com/sirupsen/logrus.Debug]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M120.29,-204C120.29,-204 28.236,-204 28.236,-204 22.236,-204 16.236,-198 16.236,-192 16.236,-192 16.236,-180 16.236,-180 16.236,-174 22.236,-168 28.236,-168 28.236,-168 120.29,-168 120.29,-168 126.29,-168 132.29,-174 132.29,-180 132.29,-180 132.29,-192 132.29,-192 132.29,-198 126.29,-204 120.29,-204"/>
|
||||
<text text-anchor="middle" x="74.263" y="-181.8" font-family="Verdana" font-size="14.00" fill="#000000">NewSessionKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->github.com/go-i2p/go-i2p/lib/common/session_key.ReadSessionKey -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->github.com/go-i2p/go-i2p/lib/common/session_key.ReadSessionKey</title>
|
||||
<g id="a_edge3"><a xlink:title="at session_key.go:35: calling [github.com/go-i2p/go-i2p/lib/common/session_key.ReadSessionKey]">
|
||||
<path fill="none" stroke="#000000" d="M90.8252,-167.9829C114.5635,-142.8336 160.3942,-96.7292 205.526,-65 209.4263,-62.258 213.6003,-59.5997 217.8606,-57.0685"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="219.7007,-60.0485 226.6664,-52.0653 216.2427,-53.9622 219.7007,-60.0485"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/sirupsen/logrus.WithField -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/sirupsen/logrus.WithField</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/sirupsen/logrus.WithField | defined in exported.go:69">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M293.2325,-113C293.2325,-113 236.6835,-113 236.6835,-113 230.6835,-113 224.6835,-107 224.6835,-101 224.6835,-101 224.6835,-89 224.6835,-89 224.6835,-83 230.6835,-77 236.6835,-77 236.6835,-77 293.2325,-77 293.2325,-77 299.2325,-77 305.2325,-83 305.2325,-89 305.2325,-89 305.2325,-101 305.2325,-101 305.2325,-107 299.2325,-113 293.2325,-113"/>
|
||||
<text text-anchor="middle" x="264.958" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="264.958" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">WithField</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->github.com/sirupsen/logrus.WithField -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->github.com/sirupsen/logrus.WithField</title>
|
||||
<g id="a_edge1"><a xlink:title="at session_key.go:34: calling [github.com/sirupsen/logrus.WithField]">
|
||||
<path fill="none" stroke="#8b4513" d="M112.3947,-167.8035C142.7648,-153.3108 185.4246,-132.9535 217.9151,-117.449"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="219.7002,-120.4753 227.2178,-113.0097 216.6854,-114.1577 219.7002,-120.4753"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/sirupsen/logrus.WithError -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/sirupsen/logrus.WithError</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/sirupsen/logrus.WithError | defined in exported.go:55">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M293.4895,-174C293.4895,-174 236.4265,-174 236.4265,-174 230.4265,-174 224.4265,-168 224.4265,-162 224.4265,-162 224.4265,-150 224.4265,-150 224.4265,-144 230.4265,-138 236.4265,-138 236.4265,-138 293.4895,-138 293.4895,-138 299.4895,-138 305.4895,-144 305.4895,-150 305.4895,-150 305.4895,-162 305.4895,-162 305.4895,-168 299.4895,-174 293.4895,-174"/>
|
||||
<text text-anchor="middle" x="264.958" y="-160.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="264.958" y="-143.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->github.com/sirupsen/logrus.WithError -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->github.com/sirupsen/logrus.WithError</title>
|
||||
<g id="a_edge4"><a xlink:title="at session_key.go:37: calling [github.com/sirupsen/logrus.WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M132.514,-176.836C158.6025,-172.7318 189.0807,-167.937 214.2186,-163.9823"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="214.9448,-167.4112 224.2794,-162.3995 213.8569,-160.4962 214.9448,-167.4112"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/sirupsen/logrus.Debug -->
|
||||
<g id="node6" class="node">
|
||||
<title>github.com/sirupsen/logrus.Debug</title>
|
||||
<g id="a_node6"><a xlink:title="github.com/sirupsen/logrus.Debug | defined in exported.go:98">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M283.78,-235C283.78,-235 246.136,-235 246.136,-235 240.136,-235 234.136,-229 234.136,-223 234.136,-223 234.136,-211 234.136,-211 234.136,-205 240.136,-199 246.136,-199 246.136,-199 283.78,-199 283.78,-199 289.78,-199 295.78,-205 295.78,-211 295.78,-211 295.78,-223 295.78,-223 295.78,-229 289.78,-235 283.78,-235"/>
|
||||
<text text-anchor="middle" x="264.958" y="-221.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="264.958" y="-204.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->github.com/sirupsen/logrus.Debug -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->github.com/sirupsen/logrus.Debug</title>
|
||||
<g id="a_edge6"><a xlink:title="at session_key.go:41: calling [github.com/sirupsen/logrus.Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M132.514,-195.4695C162.1028,-200.2795 197.3383,-206.0075 224.025,-210.3458"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="223.7352,-213.8446 234.1673,-211.9946 224.8585,-206.9353 223.7352,-213.8446"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Entry).Debug -->
|
||||
<g id="node7" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Entry).Debug</title>
|
||||
<g id="a_node7"><a xlink:title="(*github.com/sirupsen/logrus.Entry).Debug | defined in entry.go:312">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M283.78,-313C283.78,-313 246.136,-313 246.136,-313 240.136,-313 234.136,-307 234.136,-301 234.136,-301 234.136,-289 234.136,-289 234.136,-283 240.136,-277 246.136,-277 246.136,-277 283.78,-277 283.78,-277 289.78,-277 295.78,-283 295.78,-289 295.78,-289 295.78,-301 295.78,-301 295.78,-307 289.78,-313 283.78,-313"/>
|
||||
<text text-anchor="middle" x="264.958" y="-299.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="264.958" y="-282.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->(*github.com/sirupsen/logrus.Entry).Debug -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->(*github.com/sirupsen/logrus.Entry).Debug</title>
|
||||
<g id="a_edge2"><a xlink:title="at session_key.go:34: calling [(*github.com/sirupsen/logrus.Entry).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M97.9151,-204.1135C123.4419,-223.0678 165.7928,-252.8208 205.526,-273 211.5896,-276.0795 218.19,-278.9545 224.7143,-281.5442"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="223.5564,-284.8483 234.1476,-285.1249 226.0405,-278.3039 223.5564,-284.8483"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Entry).Error -->
|
||||
<g id="node8" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Entry).Error</title>
|
||||
<g id="a_node8"><a xlink:title="(*github.com/sirupsen/logrus.Entry).Error | defined in entry.go:332">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M282.4538,-374C282.4538,-374 247.4622,-374 247.4622,-374 241.4622,-374 235.4622,-368 235.4622,-362 235.4622,-362 235.4622,-350 235.4622,-350 235.4622,-344 241.4622,-338 247.4622,-338 247.4622,-338 282.4538,-338 282.4538,-338 288.4538,-338 294.4538,-344 294.4538,-350 294.4538,-350 294.4538,-362 294.4538,-362 294.4538,-368 288.4538,-374 282.4538,-374"/>
|
||||
<text text-anchor="middle" x="264.958" y="-360.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="264.958" y="-343.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->(*github.com/sirupsen/logrus.Entry).Error -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_key.NewSessionKey->(*github.com/sirupsen/logrus.Entry).Error</title>
|
||||
<g id="a_edge5"><a xlink:title="at session_key.go:37: calling [(*github.com/sirupsen/logrus.Entry).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M87.925,-204.2759C110.108,-233.0122 156.4463,-289.2647 205.526,-326 211.902,-330.7723 219.1515,-335.1491 226.3422,-338.9974"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="224.849,-342.1646 235.349,-343.5794 228.023,-335.9256 224.849,-342.1646"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
@ -2,6 +2,8 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/session_tag"
|
||||
|
||||

|
||||
|
||||
Package session_tag implements the I2P SessionTag common data structure
|
||||
|
||||
## Usage
|
||||
@ -32,3 +34,9 @@ func ReadSessionTag(bytes []byte) (info SessionTag, remainder []byte, err error)
|
||||
ReadSessionTag returns SessionTag from a []byte. The remaining bytes after the
|
||||
specified length are also returned. Returns a list of errors that occurred
|
||||
during parsing.
|
||||
|
||||
|
||||
|
||||
session_tag
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/session_tag
|
@ -2,7 +2,7 @@
|
||||
package session_tag
|
||||
|
||||
import (
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
203
lib/common/session_tag/session_tag.svg
Normal file
@ -0,0 +1,203 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="508pt" height="384pt"
|
||||
viewBox="0.00 0.00 508.38 384.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 384)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-384 508.3802,-384 508.3802,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-376 500.3802,-376 500.3802,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="254.1901" y="-355.8" font-family="Arial" font-size="18.00" fill="#000000">session_tag</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M237.9061,-207C237.9061,-207 292.2273,-207 292.2273,-207 298.2273,-207 304.2273,-213 304.2273,-219 304.2273,-219 304.2273,-273 304.2273,-273 304.2273,-279 298.2273,-285 292.2273,-285 292.2273,-285 237.9061,-285 237.9061,-285 231.9061,-285 225.9061,-279 225.9061,-273 225.9061,-273 225.9061,-219 225.9061,-219 225.9061,-213 231.9061,-207 237.9061,-207"/>
|
||||
<text text-anchor="middle" x="265.0667" y="-215.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/logger.Logger</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/logger.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M402.1614,-16C402.1614,-16 480.3802,-16 480.3802,-16 486.3802,-16 492.3802,-22 492.3802,-28 492.3802,-28 492.3802,-326 492.3802,-326 492.3802,-332 486.3802,-338 480.3802,-338 480.3802,-338 402.1614,-338 402.1614,-338 396.1614,-338 390.1614,-332 390.1614,-326 390.1614,-326 390.1614,-28 390.1614,-28 390.1614,-22 396.1614,-16 402.1614,-16"/>
|
||||
<text text-anchor="middle" x="441.2708" y="-24.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.init -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.init</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/session_tag.init | defined in .:0 at session_tag.go:9: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M88.486,-338C88.486,-338 58.486,-338 58.486,-338 52.486,-338 46.486,-332 46.486,-326 46.486,-326 46.486,-314 46.486,-314 46.486,-308 52.486,-302 58.486,-302 58.486,-302 88.486,-302 88.486,-302 94.486,-302 100.486,-308 100.486,-314 100.486,-314 100.486,-326 100.486,-326 100.486,-332 94.486,-338 88.486,-338"/>
|
||||
<text text-anchor="middle" x="73.486" y="-315.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/logger.GetGoI2PLogger | defined in log.go:120">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M313.2562,-338C313.2562,-338 215.8772,-338 215.8772,-338 209.8772,-338 203.8772,-332 203.8772,-326 203.8772,-326 203.8772,-314 203.8772,-314 203.8772,-308 209.8772,-302 215.8772,-302 215.8772,-302 313.2562,-302 313.2562,-302 319.2562,-302 325.2562,-308 325.2562,-314 325.2562,-314 325.2562,-326 325.2562,-326 325.2562,-332 319.2562,-338 313.2562,-338"/>
|
||||
<text text-anchor="middle" x="264.5667" y="-324.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="264.5667" y="-307.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.init->github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.init->github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_edge2"><a xlink:title="at session_tag.go:9: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="none" stroke="#8b4513" d="M100.8632,-320C124.9805,-320 161.1891,-320 193.4256,-320"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="193.7322,-323.5001 203.7321,-320 193.7321,-316.5001 193.7322,-323.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.ReadSessionTag -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.ReadSessionTag</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/session_tag.ReadSessionTag | defined in session_tag.go:30 at session_tag.go:32: calling [(*github.com/go-i2p/logger.Logger).Warn]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M311.3771,-89C311.3771,-89 217.7563,-89 217.7563,-89 211.7563,-89 205.7563,-83 205.7563,-77 205.7563,-77 205.7563,-65 205.7563,-65 205.7563,-59 211.7563,-53 217.7563,-53 217.7563,-53 311.3771,-53 311.3771,-53 317.3771,-53 323.3771,-59 323.3771,-65 323.3771,-65 323.3771,-77 323.3771,-77 323.3771,-83 317.3771,-89 311.3771,-89"/>
|
||||
<text text-anchor="middle" x="264.5667" y="-66.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadSessionTag</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Warn -->
|
||||
<g id="node5" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Warn</title>
|
||||
<g id="a_node5"><a xlink:title="(*github.com/go-i2p/logger.Logger).Warn | defined in log.go:30">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M459.0371,-86C459.0371,-86 423.5045,-86 423.5045,-86 417.5045,-86 411.5045,-80 411.5045,-74 411.5045,-74 411.5045,-62 411.5045,-62 411.5045,-56 417.5045,-50 423.5045,-50 423.5045,-50 459.0371,-50 459.0371,-50 465.0371,-50 471.0371,-56 471.0371,-62 471.0371,-62 471.0371,-74 471.0371,-74 471.0371,-80 465.0371,-86 459.0371,-86"/>
|
||||
<text text-anchor="middle" x="441.2708" y="-72.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="441.2708" y="-55.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.ReadSessionTag->(*github.com/go-i2p/logger.Logger).Warn -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.ReadSessionTag->(*github.com/go-i2p/logger.Logger).Warn</title>
|
||||
<g id="a_edge3"><a xlink:title="at session_tag.go:32: calling [(*github.com/go-i2p/logger.Logger).Warn]">
|
||||
<path fill="none" stroke="#8b4513" d="M323.4066,-70.001C349.0032,-69.5665 378.3334,-69.0685 401.332,-68.6781"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="401.4781,-72.1762 411.4172,-68.5068 401.3592,-65.1772 401.4781,-72.1762"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag | defined in session_tag.go:38 at session_tag.go:46: calling [(*github.com/go-i2p/logger.Logger).WithFields] at session_tag.go:39: calling [(*github.com/go-i2p/logger.Logger).WithField] at session_tag.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug] at session_tag.go:48: calling [(*github.com/sirupsen/logrus.Logger).Debug] at session_tag.go:40: calling [github.com/go-i2p/go-i2p/lib/common/session_tag.ReadSessionTag] at session_tag.go:42: calling [(*github.com/go-i2p/logger.Logger).WithError] at session_tag.go:42: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M118.958,-175C118.958,-175 28.014,-175 28.014,-175 22.014,-175 16.014,-169 16.014,-163 16.014,-163 16.014,-151 16.014,-151 16.014,-145 22.014,-139 28.014,-139 28.014,-139 118.958,-139 118.958,-139 124.958,-139 130.958,-145 130.958,-151 130.958,-151 130.958,-163 130.958,-163 130.958,-169 124.958,-175 118.958,-175"/>
|
||||
<text text-anchor="middle" x="73.486" y="-152.8" font-family="Verdana" font-size="14.00" fill="#000000">NewSessionTag</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->github.com/go-i2p/go-i2p/lib/common/session_tag.ReadSessionTag -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->github.com/go-i2p/go-i2p/lib/common/session_tag.ReadSessionTag</title>
|
||||
<g id="a_edge6"><a xlink:title="at session_tag.go:40: calling [github.com/go-i2p/go-i2p/lib/common/session_tag.ReadSessionTag]">
|
||||
<path fill="none" stroke="#000000" d="M107.7754,-138.8764C125.3106,-129.8351 147.0943,-118.9486 166.972,-110 179.9588,-104.1535 194.099,-98.2467 207.4821,-92.8597"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="209.074,-95.9929 217.0659,-89.0373 206.4808,-89.491 209.074,-95.9929"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithField -->
|
||||
<g id="node6" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithField</title>
|
||||
<g id="a_node6"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithField | defined in log.go:54">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M469.5453,-147C469.5453,-147 412.9963,-147 412.9963,-147 406.9963,-147 400.9963,-141 400.9963,-135 400.9963,-135 400.9963,-123 400.9963,-123 400.9963,-117 406.9963,-111 412.9963,-111 412.9963,-111 469.5453,-111 469.5453,-111 475.5453,-111 481.5453,-117 481.5453,-123 481.5453,-123 481.5453,-135 481.5453,-135 481.5453,-141 475.5453,-147 469.5453,-147"/>
|
||||
<text text-anchor="middle" x="441.2708" y="-133.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="441.2708" y="-116.4" font-family="Verdana" font-size="14.00" fill="#000000">WithField</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/go-i2p/logger.Logger).WithField -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/go-i2p/logger.Logger).WithField</title>
|
||||
<g id="a_edge4"><a xlink:title="at session_tag.go:39: calling [(*github.com/go-i2p/logger.Logger).WithField]">
|
||||
<path fill="none" stroke="#8b4513" d="M131.0584,-142.9712C142.8716,-140.5766 155.2725,-138.4102 166.972,-137 244.5117,-127.6536 335.2259,-126.9969 390.4445,-127.7334"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="390.6126,-131.2363 400.6655,-127.8912 390.7207,-124.2372 390.6126,-131.2363"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="node7" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_node7"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithError | defined in log.go:66">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M469.8023,-208C469.8023,-208 412.7393,-208 412.7393,-208 406.7393,-208 400.7393,-202 400.7393,-196 400.7393,-196 400.7393,-184 400.7393,-184 400.7393,-178 406.7393,-172 412.7393,-172 412.7393,-172 469.8023,-172 469.8023,-172 475.8023,-172 481.8023,-178 481.8023,-184 481.8023,-184 481.8023,-196 481.8023,-196 481.8023,-202 475.8023,-208 469.8023,-208"/>
|
||||
<text text-anchor="middle" x="441.2708" y="-194.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="441.2708" y="-177.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_edge7"><a xlink:title="at session_tag.go:42: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M131.2039,-153.4715C189.8248,-151.0372 282.9951,-150.338 362.1614,-164 371.5718,-165.624 381.3929,-168.1409 390.7862,-170.9819"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="389.7944,-174.3392 400.3849,-174.0359 391.9168,-167.6687 389.7944,-174.3392"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="node8" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_node8"><a xlink:title="(*github.com/go-i2p/logger.Logger).Error | defined in log.go:42">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M459.0371,-269C459.0371,-269 423.5045,-269 423.5045,-269 417.5045,-269 411.5045,-263 411.5045,-257 411.5045,-257 411.5045,-245 411.5045,-245 411.5045,-239 417.5045,-233 423.5045,-233 423.5045,-233 459.0371,-233 459.0371,-233 465.0371,-233 471.0371,-239 471.0371,-245 471.0371,-245 471.0371,-257 471.0371,-257 471.0371,-263 465.0371,-269 459.0371,-269"/>
|
||||
<text text-anchor="middle" x="441.2708" y="-255.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="441.2708" y="-238.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge8"><a xlink:title="at session_tag.go:42: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M130.9975,-159.1129C203.3633,-162.5668 322.9335,-171.1449 362.1614,-191 378.4342,-199.2364 375.9262,-209.5982 390.1614,-221 394.1252,-224.1748 398.4605,-227.2407 402.8767,-230.1215"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="401.0515,-233.108 411.3925,-235.4135 404.7463,-227.1625 401.0515,-233.108"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="node9" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_node9"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithFields | defined in log.go:60">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M472.4899,-330C472.4899,-330 410.0517,-330 410.0517,-330 404.0517,-330 398.0517,-324 398.0517,-318 398.0517,-318 398.0517,-306 398.0517,-306 398.0517,-300 404.0517,-294 410.0517,-294 410.0517,-294 472.4899,-294 472.4899,-294 478.4899,-294 484.4899,-300 484.4899,-306 484.4899,-306 484.4899,-318 484.4899,-318 484.4899,-324 478.4899,-330 472.4899,-330"/>
|
||||
<text text-anchor="middle" x="441.2708" y="-316.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="441.2708" y="-299.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge1"><a xlink:title="at session_tag.go:46: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M131.2291,-166.525C202.9067,-178.5 316.8096,-198.0892 325.1614,-203 364.3561,-226.0464 355.5781,-252.4814 390.1614,-282 392.6656,-284.1375 395.3424,-286.2094 398.1094,-288.1986"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="396.3464,-291.2306 406.599,-293.9015 400.2497,-285.4199 396.3464,-291.2306"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="node10" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_node10"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M283.3887,-277C283.3887,-277 245.7447,-277 245.7447,-277 239.7447,-277 233.7447,-271 233.7447,-265 233.7447,-265 233.7447,-253 233.7447,-253 233.7447,-247 239.7447,-241 245.7447,-241 245.7447,-241 283.3887,-241 283.3887,-241 289.3887,-241 295.3887,-247 295.3887,-253 295.3887,-253 295.3887,-265 295.3887,-265 295.3887,-271 289.3887,-277 283.3887,-277"/>
|
||||
<text text-anchor="middle" x="264.5667" y="-263.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="264.5667" y="-246.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/session_tag.NewSessionTag->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge5"><a xlink:title="at session_tag.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug] at session_tag.go:48: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M99.5846,-175.1809C125.3107,-192.5699 166.1513,-218.7711 203.972,-237 210.3393,-240.0689 217.2529,-242.9626 224.0558,-245.5807"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="223.2736,-249.0231 233.8669,-249.2077 225.7009,-242.4573 223.2736,-249.0231"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 18 KiB |
80
lib/common/signature/README.md
Normal file
@ -0,0 +1,80 @@
|
||||
# signature
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/signature"
|
||||
|
||||

|
||||
|
||||
Package signature implements the I2P Signature common data structure
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
const (
|
||||
DSA_SHA1_SIZE = 40
|
||||
ECDSA_SHA256_P256_SIZE = 64
|
||||
ECDSA_SHA384_P384_SIZE = 96
|
||||
ECDSA_SHA512_P512_SIZE = 132
|
||||
RSA_SHA256_2048_SIZE = 256
|
||||
RSA_SHA384_3072_SIZE = 384
|
||||
RSA_SHA512_4096_SIZE = 512
|
||||
EdDSA_SHA512_Ed25519_SIZE = 64
|
||||
EdDSA_SHA512_Ed25519ph_SIZE = 64
|
||||
RedDSA_SHA512_Ed25519_SIZE = 64
|
||||
)
|
||||
```
|
||||
Lengths of signature keys
|
||||
|
||||
```go
|
||||
const (
|
||||
SIGNATURE_TYPE_DSA_SHA1 = 0
|
||||
SIGNATURE_TYPE_ECDSA_SHA256_P256 = 1
|
||||
SIGNATURE_TYPE_ECDSA_SHA384_P384 = 2
|
||||
SIGNATURE_TYPE_ECDSA_SHA512_P521 = 3
|
||||
SIGNATURE_TYPE_RSA_SHA256_2048 = 4
|
||||
SIGNATURE_TYPE_RSA_SHA384_3072 = 5
|
||||
SIGNATURE_TYPE_RSA_SHA512_4096 = 6
|
||||
SIGNATURE_TYPE_EDDSA_SHA512_ED25519 = 7
|
||||
SIGNATURE_TYPE_EDDSA_SHA512_ED25519PH = 8
|
||||
SIGNATURE_TYPE_REDDSA_SHA512_ED25519 = 11
|
||||
)
|
||||
```
|
||||
|
||||
#### type Signature
|
||||
|
||||
```go
|
||||
type Signature []byte
|
||||
```
|
||||
|
||||
Signature is the represenation of an I2P Signature.
|
||||
|
||||
https://geti2p.net/spec/common-structures#signature
|
||||
|
||||
#### func NewSignature
|
||||
|
||||
```go
|
||||
func NewSignature(data []byte, sigType int) (signature *Signature, remainder []byte, err error)
|
||||
```
|
||||
NewSignature creates a new *Signature from []byte using ReadSignature. Returns a
|
||||
pointer to Signature unlike ReadSignature.
|
||||
|
||||
#### func ReadSignature
|
||||
|
||||
```go
|
||||
func ReadSignature(data []byte, sigType int) (sig Signature, remainder []byte, err error)
|
||||
```
|
||||
ReadSignature returns a Signature from a []byte. The remaining bytes after the
|
||||
specified length are also returned. Returns an error if there is insufficient
|
||||
data to read the signature.
|
||||
|
||||
Since the signature type and length are inferred from context (the type of key
|
||||
used), and are not explicitly stated, this function assumes the default
|
||||
signature type (DSA_SHA1) with a length of 40 bytes.
|
||||
|
||||
If a different signature type is expected based on context, this function should
|
||||
be modified accordingly to handle the correct signature length.
|
||||
|
||||
|
||||
|
||||
signature
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/common/signature
|
@ -1,50 +0,0 @@
|
||||
# signature
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/common/signature"
|
||||
|
||||
Package signature implements the I2P Signature common data structure
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
const (
|
||||
DSA_SHA1_SIZE = 40
|
||||
ECDSA_SHA256_P256_SIZE = 64
|
||||
ECDSA_SHA384_P384_SIZE = 96
|
||||
ECDSA_SHA512_P512_SIZE = 132
|
||||
RSA_SHA256_2048_SIZE = 256
|
||||
RSA_SHA384_3072_SIZE = 384
|
||||
RSA_SHA512_4096_SIZE = 512
|
||||
EdDSA_SHA512_Ed25519_SIZE = 64
|
||||
EdDSA_SHA512_Ed25519ph_SIZE = 64
|
||||
RedDSA_SHA512_Ed25519_SIZE = 64
|
||||
)
|
||||
```
|
||||
Lengths of signature keys
|
||||
|
||||
#### type Signature
|
||||
|
||||
```go
|
||||
type Signature []byte
|
||||
```
|
||||
|
||||
Signature is the represenation of an I2P Signature.
|
||||
|
||||
https://geti2p.net/spec/common-structures#signature
|
||||
|
||||
#### func NewSignature
|
||||
|
||||
```go
|
||||
func NewSignature(data []byte) (session_tag *Signature, remainder []byte, err error)
|
||||
```
|
||||
NewSignature creates a new *Signature from []byte using ReadSignature. Returns a
|
||||
pointer to Signature unlike ReadSignature.
|
||||
|
||||
#### func ReadSignature
|
||||
|
||||
```go
|
||||
func ReadSignature(bytes []byte) (info Signature, remainder []byte, err error)
|
||||
```
|
||||
ReadSignature returns Signature from a []byte. The remaining bytes after the
|
||||
specified length are also returned. Returns a list of errors that occurred
|
||||
during parsing.
|
@ -2,9 +2,8 @@
|
||||
package signature
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -88,12 +87,12 @@ func ReadSignature(data []byte, sigType int) (sig Signature, remainder []byte, e
|
||||
case SIGNATURE_TYPE_REDDSA_SHA512_ED25519:
|
||||
sigLength = RedDSA_SHA512_Ed25519_SIZE
|
||||
default:
|
||||
err = fmt.Errorf("unsupported signature type: %d", sigType)
|
||||
err = oops.Errorf("unsupported signature type: %d", sigType)
|
||||
return
|
||||
}
|
||||
|
||||
if len(data) < sigLength {
|
||||
err = fmt.Errorf("insufficient data to read signature: need %d bytes, have %d", sigLength, len(data))
|
||||
err = oops.Errorf("insufficient data to read signature: need %d bytes, have %d", sigLength, len(data))
|
||||
log.WithError(err).Error("Failed to read Signature")
|
||||
return
|
||||
}
|
||||
|
221
lib/common/signature/signature.svg
Normal file
@ -0,0 +1,221 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="497pt" height="367pt"
|
||||
viewBox="0.00 0.00 497.49 367.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 367)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-367 497.4896,-367 497.4896,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-359 489.4896,-359 489.4896,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="248.7448" y="-338.8" font-family="Arial" font-size="18.00" fill="#000000">signature</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M227.0155,-190C227.0155,-190 281.3367,-190 281.3367,-190 287.3367,-190 293.3367,-196 293.3367,-202 293.3367,-202 293.3367,-256 293.3367,-256 293.3367,-262 287.3367,-268 281.3367,-268 281.3367,-268 227.0155,-268 227.0155,-268 221.0155,-268 215.0155,-262 215.0155,-256 215.0155,-256 215.0155,-202 215.0155,-202 215.0155,-196 221.0155,-190 227.0155,-190"/>
|
||||
<text text-anchor="middle" x="254.1761" y="-198.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/logger.Logger</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/logger.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M391.2708,-60C391.2708,-60 469.4896,-60 469.4896,-60 475.4896,-60 481.4896,-66 481.4896,-72 481.4896,-72 481.4896,-309 481.4896,-309 481.4896,-315 475.4896,-321 469.4896,-321 469.4896,-321 391.2708,-321 391.2708,-321 385.2708,-321 379.2708,-315 379.2708,-309 379.2708,-309 379.2708,-72 379.2708,-72 379.2708,-66 385.2708,-60 391.2708,-60"/>
|
||||
<text text-anchor="middle" x="430.3802" y="-68.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.init -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.init</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/signature.init | defined in .:0 at signature.go:10: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M83.0407,-321C83.0407,-321 53.0407,-321 53.0407,-321 47.0407,-321 41.0407,-315 41.0407,-309 41.0407,-309 41.0407,-297 41.0407,-297 41.0407,-291 47.0407,-285 53.0407,-285 53.0407,-285 83.0407,-285 83.0407,-285 89.0407,-285 95.0407,-291 95.0407,-297 95.0407,-297 95.0407,-309 95.0407,-309 95.0407,-315 89.0407,-321 83.0407,-321"/>
|
||||
<text text-anchor="middle" x="68.0407" y="-298.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/logger.GetGoI2PLogger | defined in log.go:120">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M302.3656,-321C302.3656,-321 204.9866,-321 204.9866,-321 198.9866,-321 192.9866,-315 192.9866,-309 192.9866,-309 192.9866,-297 192.9866,-297 192.9866,-291 198.9866,-285 204.9866,-285 204.9866,-285 302.3656,-285 302.3656,-285 308.3656,-285 314.3656,-291 314.3656,-297 314.3656,-297 314.3656,-309 314.3656,-309 314.3656,-315 308.3656,-321 302.3656,-321"/>
|
||||
<text text-anchor="middle" x="253.6761" y="-307.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="253.6761" y="-290.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.init->github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.init->github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_edge7"><a xlink:title="at signature.go:10: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="none" stroke="#8b4513" d="M95.4318,-303C118.3566,-303 152.1155,-303 182.5704,-303"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="182.7516,-306.5001 192.7515,-303 182.7515,-299.5001 182.7516,-306.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.NewSignature -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.NewSignature</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/signature.NewSignature | defined in signature.go:106 at signature.go:107: calling [(*github.com/sirupsen/logrus.Logger).Debug] at signature.go:117: calling [(*github.com/sirupsen/logrus.Logger).Debug] at signature.go:110: calling [(*github.com/go-i2p/logger.Logger).WithError] at signature.go:110: calling [(*github.com/go-i2p/logger.Logger).Error] at signature.go:114: calling [(*github.com/go-i2p/logger.Logger).WithFields] at signature.go:107: calling [(*github.com/go-i2p/logger.Logger).WithField] at signature.go:108: calling [github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M108.1221,-158C108.1221,-158 27.9593,-158 27.9593,-158 21.9593,-158 15.9593,-152 15.9593,-146 15.9593,-146 15.9593,-134 15.9593,-134 15.9593,-128 21.9593,-122 27.9593,-122 27.9593,-122 108.1221,-122 108.1221,-122 114.1221,-122 120.1221,-128 120.1221,-134 120.1221,-134 120.1221,-146 120.1221,-146 120.1221,-152 114.1221,-158 108.1221,-158"/>
|
||||
<text text-anchor="middle" x="68.0407" y="-135.8" font-family="Verdana" font-size="14.00" fill="#000000">NewSignature</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature | defined in signature.go:66 at signature.go:96: calling [(*github.com/go-i2p/logger.Logger).WithError] at signature.go:96: calling [(*github.com/go-i2p/logger.Logger).Error] at signature.go:90: calling [github.com/samber/oops.Errorf] at signature.go:95: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M295.0963,-69C295.0963,-69 212.2559,-69 212.2559,-69 206.2559,-69 200.2559,-63 200.2559,-57 200.2559,-57 200.2559,-45 200.2559,-45 200.2559,-39 206.2559,-33 212.2559,-33 212.2559,-33 295.0963,-33 295.0963,-33 301.0963,-33 307.0963,-39 307.0963,-45 307.0963,-45 307.0963,-57 307.0963,-57 307.0963,-63 301.0963,-69 295.0963,-69"/>
|
||||
<text text-anchor="middle" x="253.6761" y="-46.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadSignature</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature</title>
|
||||
<g id="a_edge10"><a xlink:title="at signature.go:108: calling [github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature]">
|
||||
<path fill="none" stroke="#000000" d="M100.3187,-121.9311C116.8289,-112.9038 137.3448,-102.0133 156.0814,-93 170.2625,-86.1781 185.8305,-79.2387 200.2859,-73.0176"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="201.7762,-76.1871 209.5989,-69.0417 199.0277,-69.7492 201.7762,-76.1871"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithField -->
|
||||
<g id="node6" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithField</title>
|
||||
<g id="a_node6"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithField | defined in log.go:54">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M458.6547,-313C458.6547,-313 402.1057,-313 402.1057,-313 396.1057,-313 390.1057,-307 390.1057,-301 390.1057,-301 390.1057,-289 390.1057,-289 390.1057,-283 396.1057,-277 402.1057,-277 402.1057,-277 458.6547,-277 458.6547,-277 464.6547,-277 470.6547,-283 470.6547,-289 470.6547,-289 470.6547,-301 470.6547,-301 470.6547,-307 464.6547,-313 458.6547,-313"/>
|
||||
<text text-anchor="middle" x="430.3802" y="-299.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="430.3802" y="-282.4" font-family="Verdana" font-size="14.00" fill="#000000">WithField</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/go-i2p/logger.Logger).WithField -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/go-i2p/logger.Logger).WithField</title>
|
||||
<g id="a_edge8"><a xlink:title="at signature.go:107: calling [(*github.com/go-i2p/logger.Logger).WithField]">
|
||||
<path fill="none" stroke="#8b4513" d="M120.3668,-148.8384C190.1516,-160.7623 305.9394,-181.0792 314.2708,-186 353.4204,-209.1229 344.6875,-235.4814 379.2708,-265 381.775,-267.1375 384.4518,-269.2094 387.2188,-271.1986"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="385.4558,-274.2306 395.7084,-276.9015 389.3591,-268.4199 385.4558,-274.2306"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="node7" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_node7"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithError | defined in log.go:66">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M458.9117,-130C458.9117,-130 401.8487,-130 401.8487,-130 395.8487,-130 389.8487,-124 389.8487,-118 389.8487,-118 389.8487,-106 389.8487,-106 389.8487,-100 395.8487,-94 401.8487,-94 401.8487,-94 458.9117,-94 458.9117,-94 464.9117,-94 470.9117,-100 470.9117,-106 470.9117,-106 470.9117,-118 470.9117,-118 470.9117,-124 464.9117,-130 458.9117,-130"/>
|
||||
<text text-anchor="middle" x="430.3802" y="-116.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="430.3802" y="-99.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_edge4"><a xlink:title="at signature.go:110: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M120.3499,-126.3642C132.0338,-123.81 144.4193,-121.4804 156.0814,-120 233.5606,-110.1646 324.2917,-109.6452 379.5304,-110.5437"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="379.6922,-114.0472 389.7553,-110.7329 379.8218,-107.0484 379.6922,-114.0472"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="node8" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_node8"><a xlink:title="(*github.com/go-i2p/logger.Logger).Error | defined in log.go:42">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M448.1465,-191C448.1465,-191 412.6139,-191 412.6139,-191 406.6139,-191 400.6139,-185 400.6139,-179 400.6139,-179 400.6139,-167 400.6139,-167 400.6139,-161 406.6139,-155 412.6139,-155 412.6139,-155 448.1465,-155 448.1465,-155 454.1465,-155 460.1465,-161 460.1465,-167 460.1465,-167 460.1465,-179 460.1465,-179 460.1465,-185 454.1465,-191 448.1465,-191"/>
|
||||
<text text-anchor="middle" x="430.3802" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="430.3802" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge5"><a xlink:title="at signature.go:110: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M120.1671,-136.7629C177.3282,-134.2601 271.5401,-133.2214 351.2708,-147 364.4226,-149.2728 378.3769,-153.2877 390.8445,-157.4926"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="389.886,-160.8654 400.4808,-160.8759 392.205,-154.2607 389.886,-160.8654"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="node9" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_node9"><a xlink:title="(*github.com/go-i2p/logger.Logger).WithFields | defined in log.go:60">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M461.5993,-252C461.5993,-252 399.1611,-252 399.1611,-252 393.1611,-252 387.1611,-246 387.1611,-240 387.1611,-240 387.1611,-228 387.1611,-228 387.1611,-222 393.1611,-216 399.1611,-216 399.1611,-216 461.5993,-216 461.5993,-216 467.5993,-216 473.5993,-222 473.5993,-228 473.5993,-228 473.5993,-240 473.5993,-240 473.5993,-246 467.5993,-252 461.5993,-252"/>
|
||||
<text text-anchor="middle" x="430.3802" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="430.3802" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/go-i2p/logger.Logger).WithFields -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/go-i2p/logger.Logger).WithFields</title>
|
||||
<g id="a_edge6"><a xlink:title="at signature.go:114: calling [(*github.com/go-i2p/logger.Logger).WithFields]">
|
||||
<path fill="none" stroke="#8b4513" d="M120.2493,-142.0043C190.7307,-145.4303 312.0216,-154.0791 351.2708,-174 367.5344,-182.2546 365.0356,-192.5982 379.2708,-204 382.0037,-206.1889 384.9131,-208.326 387.9039,-210.3864"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="386.1803,-213.4407 396.469,-215.9692 390.0027,-207.5765 386.1803,-213.4407"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="node10" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_node10"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M272.4981,-260C272.4981,-260 234.8541,-260 234.8541,-260 228.8541,-260 222.8541,-254 222.8541,-248 222.8541,-248 222.8541,-236 222.8541,-236 222.8541,-230 228.8541,-224 234.8541,-224 234.8541,-224 272.4981,-224 272.4981,-224 278.4981,-224 284.4981,-230 284.4981,-236 284.4981,-236 284.4981,-248 284.4981,-248 284.4981,-254 278.4981,-260 272.4981,-260"/>
|
||||
<text text-anchor="middle" x="253.6761" y="-246.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="253.6761" y="-229.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/sirupsen/logrus.Logger).Debug -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.NewSignature->(*github.com/sirupsen/logrus.Logger).Debug</title>
|
||||
<g id="a_edge1"><a xlink:title="at signature.go:107: calling [(*github.com/sirupsen/logrus.Logger).Debug] at signature.go:117: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
|
||||
<path fill="none" stroke="#8b4513" d="M92.9329,-158.2683C117.4985,-175.7221 156.5722,-201.9699 193.0814,-220 199.419,-223.1298 206.3176,-226.0544 213.1146,-228.6844"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="212.33,-232.1261 222.9231,-232.3166 214.7609,-225.5617 212.33,-232.1261"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/samber/oops.Errorf -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/samber/oops.Errorf</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M447.5755,-52C447.5755,-52 413.1849,-52 413.1849,-52 407.1849,-52 401.1849,-46 401.1849,-40 401.1849,-40 401.1849,-28 401.1849,-28 401.1849,-22 407.1849,-16 413.1849,-16 413.1849,-16 447.5755,-16 447.5755,-16 453.5755,-16 459.5755,-22 459.5755,-28 459.5755,-28 459.5755,-40 459.5755,-40 459.5755,-46 453.5755,-52 447.5755,-52"/>
|
||||
<text text-anchor="middle" x="430.3802" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
|
||||
<text text-anchor="middle" x="430.3802" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature->github.com/samber/oops.Errorf -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge9"><a xlink:title="at signature.go:90: calling [github.com/samber/oops.Errorf] at signature.go:95: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M307.0076,-43.7814C321.0603,-42.042 336.2212,-40.3099 350.2708,-39 363.518,-37.7649 378.0268,-36.7556 391.0136,-35.9755"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="391.2664,-39.4668 401.0492,-35.399 390.8649,-32.4783 391.2664,-39.4668"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature->(*github.com/go-i2p/logger.Logger).WithError -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature->(*github.com/go-i2p/logger.Logger).WithError</title>
|
||||
<g id="a_edge2"><a xlink:title="at signature.go:96: calling [(*github.com/go-i2p/logger.Logger).WithError]">
|
||||
<path fill="none" stroke="#8b4513" d="M306.8913,-53.7663C321.7462,-55.9635 337.5623,-59.7036 351.2708,-66 366.1652,-72.8411 365.3628,-81.3277 379.2708,-90 379.7831,-90.3195 380.3009,-90.6364 380.8236,-90.9509"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="379.1809,-94.0419 389.6271,-95.8101 382.5636,-87.9135 379.1809,-94.0419"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature->(*github.com/go-i2p/logger.Logger).Error -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/signature.ReadSignature->(*github.com/go-i2p/logger.Logger).Error</title>
|
||||
<g id="a_edge3"><a xlink:title="at signature.go:96: calling [(*github.com/go-i2p/logger.Logger).Error]">
|
||||
<path fill="none" stroke="#8b4513" d="M280.561,-69.2323C300.376,-82.8562 327.8411,-102.1316 351.2708,-120 364.0764,-129.766 366.0636,-133.7844 379.2708,-143 383.2286,-145.7617 387.452,-148.5185 391.7106,-151.1795"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="390.0647,-154.2749 400.4279,-156.4779 393.7004,-148.2931 390.0647,-154.2749"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 19 KiB |
@ -6,11 +6,10 @@ import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
|
||||
func TestReadSignatureErrors(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
data := []byte{0xbe,0xef}
|
||||
data := []byte{0xbe, 0xef}
|
||||
unsupportedSigType := 1000
|
||||
_, _, err := ReadSignature(data, unsupportedSigType)
|
||||
assert.NotNil(err, "unsupported signature error should be reported")
|
||||
@ -41,7 +40,7 @@ func TestReadSignature(t *testing.T) {
|
||||
dataLen := 1024
|
||||
data := []byte{}
|
||||
for i := 0; i < dataLen; i++ {
|
||||
data = append(data, byte(i % 10))
|
||||
data = append(data, byte(i%10))
|
||||
}
|
||||
|
||||
for i, sigType := range sigTypes {
|
||||
@ -55,7 +54,7 @@ func TestReadSignature(t *testing.T) {
|
||||
func TestNewSignatureError(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
data := []byte{0xbe,0xef}
|
||||
data := []byte{0xbe, 0xef}
|
||||
unsupportedSigType := 1000
|
||||
_, _, err := NewSignature(data, unsupportedSigType)
|
||||
assert.NotNil(err, "NewSignature error should be reported")
|
||||
@ -67,8 +66,8 @@ func TestNewSignature(t *testing.T) {
|
||||
data := []byte{}
|
||||
sigLength := EdDSA_SHA512_Ed25519_SIZE
|
||||
remLength := 20
|
||||
for i := 0; i < sigLength + remLength; i++ {
|
||||
data = append(data, byte(i % 10))
|
||||
for i := 0; i < sigLength+remLength; i++ {
|
||||
data = append(data, byte(i%10))
|
||||
}
|
||||
sigType := SIGNATURE_TYPE_EDDSA_SHA512_ED25519
|
||||
|
||||
|
@ -2,9 +2,22 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/config"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
const GOI2P_BASE_DIR = ".go-i2p"
|
||||
```
|
||||
|
||||
```go
|
||||
var (
|
||||
CfgFile string
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
var DefaultBootstrapConfig = BootstrapConfig{
|
||||
LowPeerThreshold: 10,
|
||||
@ -25,6 +38,18 @@ default settings for netdb
|
||||
var RouterConfigProperties = DefaultRouterConfig()
|
||||
```
|
||||
|
||||
#### func InitConfig
|
||||
|
||||
```go
|
||||
func InitConfig()
|
||||
```
|
||||
|
||||
#### func UpdateRouterConfig
|
||||
|
||||
```go
|
||||
func UpdateRouterConfig()
|
||||
```
|
||||
|
||||
#### type BootstrapConfig
|
||||
|
||||
```go
|
||||
@ -83,3 +108,9 @@ router.config options
|
||||
```go
|
||||
func DefaultRouterConfig() *RouterConfig
|
||||
```
|
||||
|
||||
|
||||
|
||||
config
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/config
|
@ -4,9 +4,9 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/go-i2p/lib/util"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/spf13/viper"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -17,48 +17,13 @@ var (
|
||||
const GOI2P_BASE_DIR = ".go-i2p"
|
||||
|
||||
func InitConfig() {
|
||||
defaultConfigDir := filepath.Join(os.Getenv("HOME"), GOI2P_BASE_DIR)
|
||||
defaultConfigFile := filepath.Join(defaultConfigDir, "config.yaml")
|
||||
|
||||
if CfgFile != "" {
|
||||
// Use config file from the flag
|
||||
viper.SetConfigFile(CfgFile)
|
||||
} else {
|
||||
// Create default config if it doesn't exist
|
||||
if _, err := os.Stat(defaultConfigFile); os.IsNotExist(err) {
|
||||
// Ensure directory exists
|
||||
if err := os.MkdirAll(defaultConfigDir, 0o755); err != nil {
|
||||
log.Fatalf("Could not create config directory: %s", err)
|
||||
}
|
||||
|
||||
// Create default configuration
|
||||
defaultConfig := struct {
|
||||
BaseDir string `yaml:"base_dir"`
|
||||
WorkingDir string `yaml:"working_dir"`
|
||||
NetDB NetDbConfig `yaml:"netdb"`
|
||||
Bootstrap BootstrapConfig `yaml:"bootstrap"`
|
||||
}{
|
||||
BaseDir: DefaultRouterConfig().BaseDir,
|
||||
WorkingDir: DefaultRouterConfig().WorkingDir,
|
||||
NetDB: *DefaultRouterConfig().NetDb,
|
||||
Bootstrap: *DefaultRouterConfig().Bootstrap,
|
||||
}
|
||||
|
||||
yamlData, err := yaml.Marshal(defaultConfig)
|
||||
if err != nil {
|
||||
log.Fatalf("Could not marshal default config: %s", err)
|
||||
}
|
||||
|
||||
// Write default config file
|
||||
if err := os.WriteFile(defaultConfigFile, yamlData, 0o644); err != nil {
|
||||
log.Fatalf("Could not write default config file: %s", err)
|
||||
}
|
||||
|
||||
log.Debugf("Created default configuration at: %s", defaultConfigFile)
|
||||
}
|
||||
|
||||
// Set up viper to use the config file
|
||||
viper.AddConfigPath(defaultConfigDir)
|
||||
// Set up viper to use the default config path $HOME/.go-ip/
|
||||
viper.AddConfigPath(BuildI2PDirPath())
|
||||
viper.SetConfigName("config")
|
||||
viper.SetConfigType("yaml")
|
||||
}
|
||||
@ -66,11 +31,8 @@ func InitConfig() {
|
||||
// Load defaults
|
||||
setDefaults()
|
||||
|
||||
if err := viper.ReadInConfig(); err != nil {
|
||||
log.Warnf("Error reading config file: %s", err)
|
||||
} else {
|
||||
log.Debugf("Using config file: %s", viper.ConfigFileUsed())
|
||||
}
|
||||
// handle config file creating it if needed
|
||||
handleConfigFile()
|
||||
|
||||
// Update RouterConfigProperties
|
||||
UpdateRouterConfig()
|
||||
@ -111,3 +73,41 @@ func UpdateRouterConfig() {
|
||||
ReseedServers: reseedServers,
|
||||
}
|
||||
}
|
||||
|
||||
func createDefaultConfig(defaultConfigDir string) {
|
||||
|
||||
defaultConfigFile := filepath.Join(defaultConfigDir, "config.yaml")
|
||||
// Ensure directory exists
|
||||
if err := os.MkdirAll(defaultConfigDir, 0o755); err != nil {
|
||||
log.Fatalf("Could not create config directory: %s", err)
|
||||
}
|
||||
|
||||
// Write current config file
|
||||
if err := viper.WriteConfig(); err != nil {
|
||||
log.Fatalf("Could not write default config file: %s", err)
|
||||
}
|
||||
|
||||
log.Debugf("Created default configuration at: %s", defaultConfigFile)
|
||||
|
||||
}
|
||||
|
||||
func handleConfigFile() {
|
||||
if err := viper.ReadInConfig(); err != nil {
|
||||
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
|
||||
if CfgFile != "" {
|
||||
log.Fatalf("Config file %s is not found: %s", CfgFile, err)
|
||||
} else {
|
||||
createDefaultConfig(BuildI2PDirPath())
|
||||
}
|
||||
} else {
|
||||
log.Fatalf("Error reading config file: %s", err)
|
||||
}
|
||||
} else {
|
||||
log.Debugf("Using config file: %s", viper.ConfigFileUsed())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func BuildI2PDirPath() string {
|
||||
return filepath.Join(util.UserHome(), GOI2P_BASE_DIR)
|
||||
}
|
||||
|
481
lib/config/config.svg
Normal file
@ -0,0 +1,481 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="673pt" height="848pt"
|
||||
viewBox="0.00 0.00 672.82 848.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 848)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-848 672.8192,-848 672.8192,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-840 664.8192,-840 664.8192,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="336.4096" y="-819.8" font-family="Arial" font-size="18.00" fill="#000000">config</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M213.047,-663C213.047,-663 271.0288,-663 271.0288,-663 277.0288,-663 283.0288,-669 283.0288,-675 283.0288,-675 283.0288,-790 283.0288,-790 283.0288,-796 277.0288,-802 271.0288,-802 271.0288,-802 213.047,-802 213.047,-802 207.047,-802 201.047,-796 201.047,-790 201.047,-790 201.047,-675 201.047,-675 201.047,-669 207.047,-663 213.047,-663"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-671.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/logger.Logger</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/logger.Logger">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M430.3472,-602C430.3472,-602 484.113,-602 484.113,-602 490.113,-602 496.113,-608 496.113,-614 496.113,-614 496.113,-668 496.113,-668 496.113,-674 490.113,-680 484.113,-680 484.113,-680 430.3472,-680 430.3472,-680 424.3472,-680 418.3472,-674 418.3472,-668 418.3472,-668 418.3472,-614 418.3472,-614 418.3472,-608 424.3472,-602 430.3472,-602"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-610.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/config.InitConfig | defined in config.go:19 at config.go:72: calling [github.com/spf13/viper.ConfigFileUsed] at config.go:62: calling [github.com/spf13/viper.SetConfigName] at config.go:70: calling [(*github.com/go-i2p/logger.Logger).Warnf] at config.go:61: calling [github.com/spf13/viper.AddConfigPath] at config.go:63: calling [github.com/spf13/viper.SetConfigType] at config.go:41: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig] at config.go:42: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig] at config.go:43: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig] at config.go:44: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig] at config.go:76: calling [github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig] at config.go:25: calling [github.com/spf13/viper.SetConfigFile] at config.go:69: calling [github.com/spf13/viper.ReadInConfig] at config.go:31: calling [(*github.com/sirupsen/logrus.Logger).Fatalf] at config.go:49: calling [(*github.com/sirupsen/logrus.Logger).Fatalf] at config.go:54: calling [(*github.com/sirupsen/logrus.Logger).Fatalf] at config.go:67: calling [github.com/go-i2p/go-i2p/lib/config.setDefaults] at config.go:47: calling [gopkg.in/yaml.v3.Marshal] at config.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debugf] at config.go:72: calling [(*github.com/sirupsen/logrus.Logger).Debugf]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M86.4951,-445C86.4951,-445 27.8345,-445 27.8345,-445 21.8345,-445 15.8345,-439 15.8345,-433 15.8345,-433 15.8345,-421 15.8345,-421 15.8345,-415 21.8345,-409 27.8345,-409 27.8345,-409 86.4951,-409 86.4951,-409 92.4951,-409 98.4951,-415 98.4951,-421 98.4951,-421 98.4951,-433 98.4951,-433 98.4951,-439 92.4951,-445 86.4951,-445"/>
|
||||
<text text-anchor="middle" x="57.1648" y="-422.8" font-family="Verdana" font-size="14.00" fill="#000000">InitConfig</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.SetConfigFile -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/spf13/viper.SetConfigFile</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/spf13/viper.SetConfigFile | defined in viper.go:509">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M281.0929,-113C281.0929,-113 202.9829,-113 202.9829,-113 196.9829,-113 190.9829,-107 190.9829,-101 190.9829,-101 190.9829,-89 190.9829,-89 190.9829,-83 196.9829,-77 202.9829,-77 202.9829,-77 281.0929,-77 281.0929,-77 287.0929,-77 293.0929,-83 293.0929,-89 293.0929,-89 293.0929,-101 293.0929,-101 293.0929,-107 287.0929,-113 281.0929,-113"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="242.0379" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">SetConfigFile</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.SetConfigFile -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.SetConfigFile</title>
|
||||
<g id="a_edge17"><a xlink:title="at config.go:25: calling [github.com/spf13/viper.SetConfigFile]">
|
||||
<path fill="none" stroke="#8b4513" d="M59.6612,-408.7336C67.8983,-350.9377 95.897,-173.4308 134.3296,-132 146.5817,-118.7921 163.757,-110.299 180.7987,-104.8377"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="182.1403,-108.0935 190.779,-101.9597 180.2007,-101.3675 182.1403,-108.0935"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.setDefaults -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.setDefaults</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/config.setDefaults | defined in config.go:79 at config.go:81: calling [github.com/spf13/viper.SetDefault] at config.go:82: calling [github.com/spf13/viper.SetDefault] at config.go:85: calling [github.com/spf13/viper.SetDefault] at config.go:88: calling [github.com/spf13/viper.SetDefault] at config.go:89: calling [github.com/spf13/viper.SetDefault] at config.go:81: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig] at config.go:82: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M273.5099,-201C273.5099,-201 210.5659,-201 210.5659,-201 204.5659,-201 198.5659,-195 198.5659,-189 198.5659,-189 198.5659,-177 198.5659,-177 198.5659,-171 204.5659,-165 210.5659,-165 210.5659,-165 273.5099,-165 273.5099,-165 279.5099,-165 285.5099,-171 285.5099,-177 285.5099,-177 285.5099,-189 285.5099,-189 285.5099,-195 279.5099,-201 273.5099,-201"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-178.8" font-family="Verdana" font-size="14.00" fill="#000000">setDefaults</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/go-i2p/go-i2p/lib/config.setDefaults -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/go-i2p/go-i2p/lib/config.setDefaults</title>
|
||||
<g id="a_edge22"><a xlink:title="at config.go:67: calling [github.com/go-i2p/go-i2p/lib/config.setDefaults]">
|
||||
<path fill="none" stroke="#000000" d="M62.41,-408.7554C74.8624,-368.4311 109.8568,-270.808 171.3296,-214 176.6761,-209.0592 182.9367,-204.8195 189.4828,-201.2058"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="191.1647,-204.2777 198.5273,-196.6591 188.0206,-198.0235 191.1647,-204.2777"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig | defined in router.go:44">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M516.6979,-235C516.6979,-235 397.7623,-235 397.7623,-235 391.7623,-235 385.7623,-229 385.7623,-223 385.7623,-223 385.7623,-211 385.7623,-211 385.7623,-205 391.7623,-199 397.7623,-199 397.7623,-199 516.6979,-199 516.6979,-199 522.6979,-199 528.6979,-205 528.6979,-211 528.6979,-211 528.6979,-223 528.6979,-223 528.6979,-229 522.6979,-235 516.6979,-235"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-212.8" font-family="Verdana" font-size="14.00" fill="#000000">DefaultRouterConfig</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig</title>
|
||||
<g id="a_edge12"><a xlink:title="at config.go:41: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig] at config.go:42: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig] at config.go:43: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig] at config.go:44: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig]">
|
||||
<path fill="none" stroke="#000000" d="M58.2342,-408.7257C62.3308,-357.5636 81.7139,-212.7442 171.3296,-153 251.6114,-99.4785 297.5124,-147.955 385.7462,-187 391.5616,-189.5734 397.6655,-192.2189 403.7533,-194.8221"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="402.6903,-198.1732 413.2628,-198.8617 405.4272,-191.7304 402.6903,-198.1732"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.ReadInConfig -->
|
||||
<g id="node6" class="node">
|
||||
<title>github.com/spf13/viper.ReadInConfig</title>
|
||||
<g id="a_node6"><a xlink:title="github.com/spf13/viper.ReadInConfig | defined in viper.go:1632">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M281.8526,-262C281.8526,-262 202.2232,-262 202.2232,-262 196.2232,-262 190.2232,-256 190.2232,-250 190.2232,-250 190.2232,-238 190.2232,-238 190.2232,-232 196.2232,-226 202.2232,-226 202.2232,-226 281.8526,-226 281.8526,-226 287.8526,-226 293.8526,-232 293.8526,-238 293.8526,-238 293.8526,-250 293.8526,-250 293.8526,-256 287.8526,-262 281.8526,-262"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-248.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="242.0379" y="-231.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadInConfig</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.ReadInConfig -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.ReadInConfig</title>
|
||||
<g id="a_edge18"><a xlink:title="at config.go:69: calling [github.com/spf13/viper.ReadInConfig]">
|
||||
<path fill="none" stroke="#8b4513" d="M66.7557,-408.6781C83.9212,-377.4408 122.6923,-313.5246 171.3296,-275 174.9135,-272.1613 178.7976,-269.5287 182.8383,-267.0977"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="184.8229,-269.9997 191.8786,-262.0961 181.4341,-263.8746 184.8229,-269.9997"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.AddConfigPath -->
|
||||
<g id="node7" class="node">
|
||||
<title>github.com/spf13/viper.AddConfigPath</title>
|
||||
<g id="a_node7"><a xlink:title="github.com/spf13/viper.AddConfigPath | defined in viper.go:574">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M285.9202,-323C285.9202,-323 198.1556,-323 198.1556,-323 192.1556,-323 186.1556,-317 186.1556,-311 186.1556,-311 186.1556,-299 186.1556,-299 186.1556,-293 192.1556,-287 198.1556,-287 198.1556,-287 285.9202,-287 285.9202,-287 291.9202,-287 297.9202,-293 297.9202,-299 297.9202,-299 297.9202,-311 297.9202,-311 297.9202,-317 291.9202,-323 285.9202,-323"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-309.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="242.0379" y="-292.4" font-family="Verdana" font-size="14.00" fill="#000000">AddConfigPath</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.AddConfigPath -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.AddConfigPath</title>
|
||||
<g id="a_edge10"><a xlink:title="at config.go:61: calling [github.com/spf13/viper.AddConfigPath]">
|
||||
<path fill="none" stroke="#8b4513" d="M76.6135,-408.8716C98.4485,-389.1682 135.5252,-357.6121 171.3296,-336 176.255,-333.027 181.5164,-330.1794 186.8628,-327.4989"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="188.4024,-330.6422 195.8962,-323.1527 185.3675,-324.3343 188.4024,-330.6422"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.SetConfigName -->
|
||||
<g id="node8" class="node">
|
||||
<title>github.com/spf13/viper.SetConfigName</title>
|
||||
<g id="a_node8"><a xlink:title="github.com/spf13/viper.SetConfigName | defined in viper.go:2174">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M287.2401,-384C287.2401,-384 196.8357,-384 196.8357,-384 190.8357,-384 184.8357,-378 184.8357,-372 184.8357,-372 184.8357,-360 184.8357,-360 184.8357,-354 190.8357,-348 196.8357,-348 196.8357,-348 287.2401,-348 287.2401,-348 293.2401,-348 299.2401,-354 299.2401,-360 299.2401,-360 299.2401,-372 299.2401,-372 299.2401,-378 293.2401,-384 287.2401,-384"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-370.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="242.0379" y="-353.4" font-family="Verdana" font-size="14.00" fill="#000000">SetConfigName</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.SetConfigName -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.SetConfigName</title>
|
||||
<g id="a_edge6"><a xlink:title="at config.go:62: calling [github.com/spf13/viper.SetConfigName]">
|
||||
<path fill="none" stroke="#8b4513" d="M98.6539,-413.3104C121.9783,-405.6144 151.5964,-395.8417 177.8508,-387.1789"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="178.9537,-390.5007 187.3534,-384.0435 176.7603,-383.8532 178.9537,-390.5007"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.SetConfigType -->
|
||||
<g id="node9" class="node">
|
||||
<title>github.com/spf13/viper.SetConfigType</title>
|
||||
<g id="a_node9"><a xlink:title="github.com/spf13/viper.SetConfigType | defined in viper.go:2185">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M284.5817,-445C284.5817,-445 199.4941,-445 199.4941,-445 193.4941,-445 187.4941,-439 187.4941,-433 187.4941,-433 187.4941,-421 187.4941,-421 187.4941,-415 193.4941,-409 199.4941,-409 199.4941,-409 284.5817,-409 284.5817,-409 290.5817,-409 296.5817,-415 296.5817,-421 296.5817,-421 296.5817,-433 296.5817,-433 296.5817,-439 290.5817,-445 284.5817,-445"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-431.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="242.0379" y="-414.4" font-family="Verdana" font-size="14.00" fill="#000000">SetConfigType</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.SetConfigType -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.SetConfigType</title>
|
||||
<g id="a_edge11"><a xlink:title="at config.go:63: calling [github.com/spf13/viper.SetConfigType]">
|
||||
<path fill="none" stroke="#8b4513" d="M98.6539,-427C121.7737,-427 151.0773,-427 177.1591,-427"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="177.3534,-430.5001 187.3534,-427 177.3534,-423.5001 177.3534,-430.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- gopkg.in/yaml.v3.Marshal -->
|
||||
<g id="node10" class="node">
|
||||
<title>gopkg.in/yaml.v3.Marshal</title>
|
||||
<g id="a_node10"><a xlink:title="gopkg.in/yaml.v3.Marshal | defined in yaml.go:218">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M264.9076,-506C264.9076,-506 219.1682,-506 219.1682,-506 213.1682,-506 207.1682,-500 207.1682,-494 207.1682,-494 207.1682,-482 207.1682,-482 207.1682,-476 213.1682,-470 219.1682,-470 219.1682,-470 264.9076,-470 264.9076,-470 270.9076,-470 276.9076,-476 276.9076,-482 276.9076,-482 276.9076,-494 276.9076,-494 276.9076,-500 270.9076,-506 264.9076,-506"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-492.2" font-family="Verdana" font-size="14.00" fill="#000000">yaml</text>
|
||||
<text text-anchor="middle" x="242.0379" y="-475.4" font-family="Verdana" font-size="14.00" fill="#000000">Marshal</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->gopkg.in/yaml.v3.Marshal -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->gopkg.in/yaml.v3.Marshal</title>
|
||||
<g id="a_edge23"><a xlink:title="at config.go:47: calling [gopkg.in/yaml.v3.Marshal]">
|
||||
<path fill="none" stroke="#8b4513" d="M98.6539,-440.6896C127.9217,-450.3467 167.0992,-463.2735 197.1058,-473.1744"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="196.3096,-476.5972 206.9028,-476.4069 198.503,-469.9497 196.3096,-476.5972"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig -->
|
||||
<g id="node11" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig</title>
|
||||
<g id="a_node11"><a xlink:title="github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig | defined in config.go:92 at config.go:110: calling [github.com/spf13/viper.GetInt] at config.go:104: calling [github.com/spf13/viper.UnmarshalKey] at config.go:105: calling [(*github.com/go-i2p/logger.Logger).Warnf] at config.go:94: calling [github.com/spf13/viper.GetString] at config.go:95: calling [github.com/spf13/viper.GetString] at config.go:99: calling [github.com/spf13/viper.GetString]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M300.9551,-567C300.9551,-567 183.1207,-567 183.1207,-567 177.1207,-567 171.1207,-561 171.1207,-555 171.1207,-555 171.1207,-543 171.1207,-543 171.1207,-537 177.1207,-531 183.1207,-531 183.1207,-531 300.9551,-531 300.9551,-531 306.9551,-531 312.9551,-537 312.9551,-543 312.9551,-543 312.9551,-555 312.9551,-555 312.9551,-561 306.9551,-567 300.9551,-567"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-544.8" font-family="Verdana" font-size="14.00" fill="#000000">UpdateRouterConfig</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig</title>
|
||||
<g id="a_edge15"><a xlink:title="at config.go:76: calling [github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig]">
|
||||
<path fill="none" stroke="#000000" d="M76.1343,-445.065C97.8401,-465.0469 135.0821,-497.2831 171.3296,-519 175.7211,-521.6311 180.3856,-524.1477 185.1426,-526.525"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="183.824,-529.7738 194.3568,-530.9185 186.8368,-523.4553 183.824,-529.7738"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.ConfigFileUsed -->
|
||||
<g id="node15" class="node">
|
||||
<title>github.com/spf13/viper.ConfigFileUsed</title>
|
||||
<g id="a_node15"><a xlink:title="github.com/spf13/viper.ConfigFileUsed | defined in viper.go:569">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M286.9707,-628C286.9707,-628 197.1051,-628 197.1051,-628 191.1051,-628 185.1051,-622 185.1051,-616 185.1051,-616 185.1051,-604 185.1051,-604 185.1051,-598 191.1051,-592 197.1051,-592 197.1051,-592 286.9707,-592 286.9707,-592 292.9707,-592 298.9707,-598 298.9707,-604 298.9707,-604 298.9707,-616 298.9707,-616 298.9707,-622 292.9707,-628 286.9707,-628"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-614.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="242.0379" y="-597.4" font-family="Verdana" font-size="14.00" fill="#000000">ConfigFileUsed</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.ConfigFileUsed -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->github.com/spf13/viper.ConfigFileUsed</title>
|
||||
<g id="a_edge1"><a xlink:title="at config.go:72: calling [github.com/spf13/viper.ConfigFileUsed]">
|
||||
<path fill="none" stroke="#8b4513" d="M66.4064,-445.0067C83.3121,-476.3611 122.0575,-541.3233 171.3296,-580 174.4846,-582.4766 177.8743,-584.7853 181.4,-586.9314"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="179.9481,-590.1289 190.3879,-591.9344 183.3526,-584.0126 179.9481,-590.1289"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/logger.Logger).Warnf -->
|
||||
<g id="node21" class="node">
|
||||
<title>(*github.com/go-i2p/logger.Logger).Warnf</title>
|
||||
<g id="a_node21"><a xlink:title="(*github.com/go-i2p/logger.Logger).Warnf | defined in log.go:36">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M474.9964,-672C474.9964,-672 439.4638,-672 439.4638,-672 433.4638,-672 427.4638,-666 427.4638,-660 427.4638,-660 427.4638,-648 427.4638,-648 427.4638,-642 433.4638,-636 439.4638,-636 439.4638,-636 474.9964,-636 474.9964,-636 480.9964,-636 486.9964,-642 486.9964,-648 486.9964,-648 486.9964,-660 486.9964,-660 486.9964,-666 480.9964,-672 474.9964,-672"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-658.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="457.2301" y="-641.4" font-family="Verdana" font-size="14.00" fill="#000000">Warnf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->(*github.com/go-i2p/logger.Logger).Warnf -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->(*github.com/go-i2p/logger.Logger).Warnf</title>
|
||||
<g id="a_edge7"><a xlink:title="at config.go:70: calling [(*github.com/go-i2p/logger.Logger).Warnf]">
|
||||
<path fill="none" stroke="#8b4513" d="M60.5914,-445.1687C69.7579,-488.0742 99.2234,-595.4829 171.3296,-641 191.553,-653.766 343.0676,-654.6831 416.953,-654.3531"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="417.2853,-657.8514 427.2659,-654.2966 417.2469,-650.8515 417.2853,-657.8514"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Fatalf -->
|
||||
<g id="node22" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Fatalf</title>
|
||||
<g id="a_node22"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Fatalf | defined in logger.go:189">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M259.5337,-794C259.5337,-794 224.5421,-794 224.5421,-794 218.5421,-794 212.5421,-788 212.5421,-782 212.5421,-782 212.5421,-770 212.5421,-770 212.5421,-764 218.5421,-758 224.5421,-758 224.5421,-758 259.5337,-758 259.5337,-758 265.5337,-758 271.5337,-764 271.5337,-770 271.5337,-770 271.5337,-782 271.5337,-782 271.5337,-788 265.5337,-794 259.5337,-794"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-780.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="242.0379" y="-763.4" font-family="Verdana" font-size="14.00" fill="#000000">Fatalf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->(*github.com/sirupsen/logrus.Logger).Fatalf -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->(*github.com/sirupsen/logrus.Logger).Fatalf</title>
|
||||
<g id="a_edge19"><a xlink:title="at config.go:31: calling [(*github.com/sirupsen/logrus.Logger).Fatalf] at config.go:49: calling [(*github.com/sirupsen/logrus.Logger).Fatalf] at config.go:54: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]">
|
||||
<path fill="none" stroke="#8b4513" d="M58.2044,-445.1411C62.2835,-499.0873 81.7586,-660.0854 171.3296,-746 180.1126,-754.4245 191.6201,-760.6551 202.793,-765.1854"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="201.8553,-768.5698 212.4488,-768.7413 204.2744,-762.0011 201.8553,-768.5698"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/sirupsen/logrus.Logger).Debugf -->
|
||||
<g id="node23" class="node">
|
||||
<title>(*github.com/sirupsen/logrus.Logger).Debugf</title>
|
||||
<g id="a_node23"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debugf | defined in logger.go:163">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M263.0197,-733C263.0197,-733 221.0561,-733 221.0561,-733 215.0561,-733 209.0561,-727 209.0561,-721 209.0561,-721 209.0561,-709 209.0561,-709 209.0561,-703 215.0561,-697 221.0561,-697 221.0561,-697 263.0197,-697 263.0197,-697 269.0197,-697 275.0197,-703 275.0197,-709 275.0197,-709 275.0197,-721 275.0197,-721 275.0197,-727 269.0197,-733 263.0197,-733"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-719.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
|
||||
<text text-anchor="middle" x="242.0379" y="-702.4" font-family="Verdana" font-size="14.00" fill="#000000">Debugf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.InitConfig->(*github.com/sirupsen/logrus.Logger).Debugf -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.InitConfig->(*github.com/sirupsen/logrus.Logger).Debugf</title>
|
||||
<g id="a_edge24"><a xlink:title="at config.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debugf] at config.go:72: calling [(*github.com/sirupsen/logrus.Logger).Debugf]">
|
||||
<path fill="none" stroke="#8b4513" d="M59.7631,-445.1644C66.3637,-486.5229 86.7448,-589.6433 134.3296,-661 146.392,-679.0884 152.3268,-682.4366 171.3296,-693 179.9196,-697.7751 189.6845,-701.6601 199.1566,-704.7608"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="198.2743,-708.1507 208.8601,-707.7126 200.3116,-701.4537 198.2743,-708.1507"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.setDefaults->github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.setDefaults->github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig</title>
|
||||
<g id="a_edge9"><a xlink:title="at config.go:81: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig] at config.go:82: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig]">
|
||||
<path fill="none" stroke="#000000" d="M285.5853,-189.8804C311.2942,-193.9424 344.6737,-199.2163 375.1536,-204.0321"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="374.9402,-207.5417 385.3639,-205.6453 376.0327,-200.6274 374.9402,-207.5417"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.SetDefault -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/spf13/viper.SetDefault</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/spf13/viper.SetDefault | defined in viper.go:1596">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M487.0956,-296C487.0956,-296 427.3646,-296 427.3646,-296 421.3646,-296 415.3646,-290 415.3646,-284 415.3646,-284 415.3646,-272 415.3646,-272 415.3646,-266 421.3646,-260 427.3646,-260 427.3646,-260 487.0956,-260 487.0956,-260 493.0956,-260 499.0956,-266 499.0956,-272 499.0956,-272 499.0956,-284 499.0956,-284 499.0956,-290 493.0956,-296 487.0956,-296"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-282.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="457.2301" y="-265.4" font-family="Verdana" font-size="14.00" fill="#000000">SetDefault</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.setDefaults->github.com/spf13/viper.SetDefault -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.setDefaults->github.com/spf13/viper.SetDefault</title>
|
||||
<g id="a_edge5"><a xlink:title="at config.go:81: calling [github.com/spf13/viper.SetDefault] at config.go:82: calling [github.com/spf13/viper.SetDefault] at config.go:85: calling [github.com/spf13/viper.SetDefault] at config.go:88: calling [github.com/spf13/viper.SetDefault] at config.go:89: calling [github.com/spf13/viper.SetDefault]">
|
||||
<path fill="none" stroke="#8b4513" d="M283.6095,-201.0383C293.1974,-205.2506 303.3415,-209.7489 312.7462,-214 345.36,-228.742 353.0167,-233.5166 385.7462,-248 392.1136,-250.8177 398.8267,-253.7217 405.4859,-256.5621"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="404.5842,-259.9812 415.1572,-260.6606 407.3156,-253.5361 404.5842,-259.9812"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.GetString -->
|
||||
<g id="node12" class="node">
|
||||
<title>github.com/spf13/viper.GetString</title>
|
||||
<g id="a_node12"><a xlink:title="github.com/spf13/viper.GetString | defined in viper.go:975">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M484.6675,-472C484.6675,-472 429.7927,-472 429.7927,-472 423.7927,-472 417.7927,-466 417.7927,-460 417.7927,-460 417.7927,-448 417.7927,-448 417.7927,-442 423.7927,-436 429.7927,-436 429.7927,-436 484.6675,-436 484.6675,-436 490.6675,-436 496.6675,-442 496.6675,-448 496.6675,-448 496.6675,-460 496.6675,-460 496.6675,-466 490.6675,-472 484.6675,-472"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-458.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="457.2301" y="-441.4" font-family="Verdana" font-size="14.00" fill="#000000">GetString</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig->github.com/spf13/viper.GetString -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig->github.com/spf13/viper.GetString</title>
|
||||
<g id="a_edge20"><a xlink:title="at config.go:94: calling [github.com/spf13/viper.GetString] at config.go:95: calling [github.com/spf13/viper.GetString] at config.go:99: calling [github.com/spf13/viper.GetString]">
|
||||
<path fill="none" stroke="#8b4513" d="M285.1417,-530.9925C294.2808,-527.0961 303.8521,-522.9566 312.7462,-519 345.4473,-504.4527 353.103,-499.6768 385.7462,-485 393.114,-481.6874 400.9343,-478.2333 408.5951,-474.884"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="410.0483,-478.0687 417.8193,-470.8672 407.2535,-471.6508 410.0483,-478.0687"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.UnmarshalKey -->
|
||||
<g id="node13" class="node">
|
||||
<title>github.com/spf13/viper.UnmarshalKey</title>
|
||||
<g id="a_node13"><a xlink:title="github.com/spf13/viper.UnmarshalKey | defined in viper.go:1103">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M499.4738,-533C499.4738,-533 414.9864,-533 414.9864,-533 408.9864,-533 402.9864,-527 402.9864,-521 402.9864,-521 402.9864,-509 402.9864,-509 402.9864,-503 408.9864,-497 414.9864,-497 414.9864,-497 499.4738,-497 499.4738,-497 505.4738,-497 511.4738,-503 511.4738,-509 511.4738,-509 511.4738,-521 511.4738,-521 511.4738,-527 505.4738,-533 499.4738,-533"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-519.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="457.2301" y="-502.4" font-family="Verdana" font-size="14.00" fill="#000000">UnmarshalKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig->github.com/spf13/viper.UnmarshalKey -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig->github.com/spf13/viper.UnmarshalKey</title>
|
||||
<g id="a_edge13"><a xlink:title="at config.go:104: calling [github.com/spf13/viper.UnmarshalKey]">
|
||||
<path fill="none" stroke="#8b4513" d="M312.7979,-537.82C338.5302,-533.7544 367.4592,-529.1836 392.6306,-525.2066"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="393.4713,-528.6173 402.8026,-523.5995 392.3788,-521.703 393.4713,-528.6173"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/spf13/viper.GetInt -->
|
||||
<g id="node14" class="node">
|
||||
<title>github.com/spf13/viper.GetInt</title>
|
||||
<g id="a_node14"><a xlink:title="github.com/spf13/viper.GetInt | defined in viper.go:989">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M474.9936,-594C474.9936,-594 439.4666,-594 439.4666,-594 433.4666,-594 427.4666,-588 427.4666,-582 427.4666,-582 427.4666,-570 427.4666,-570 427.4666,-564 433.4666,-558 439.4666,-558 439.4666,-558 474.9936,-558 474.9936,-558 480.9936,-558 486.9936,-564 486.9936,-570 486.9936,-570 486.9936,-582 486.9936,-582 486.9936,-588 480.9936,-594 474.9936,-594"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-580.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
|
||||
<text text-anchor="middle" x="457.2301" y="-563.4" font-family="Verdana" font-size="14.00" fill="#000000">GetInt</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig->github.com/spf13/viper.GetInt -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig->github.com/spf13/viper.GetInt</title>
|
||||
<g id="a_edge8"><a xlink:title="at config.go:110: calling [github.com/spf13/viper.GetInt]">
|
||||
<path fill="none" stroke="#8b4513" d="M312.7979,-557.8782C347.3833,-562.2176 387.7433,-567.2815 416.9933,-570.9515"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="416.8776,-574.4644 427.2356,-572.2366 417.7491,-567.5188 416.8776,-574.4644"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig->(*github.com/go-i2p/logger.Logger).Warnf -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.UpdateRouterConfig->(*github.com/go-i2p/logger.Logger).Warnf</title>
|
||||
<g id="a_edge14"><a xlink:title="at config.go:105: calling [(*github.com/go-i2p/logger.Logger).Warnf]">
|
||||
<path fill="none" stroke="#8b4513" d="M287.2284,-567.1523C295.8575,-571.0805 304.7021,-575.4362 312.7462,-580 347.3927,-599.6568 350.0307,-614.36 385.7462,-632 395.6276,-636.8804 406.8143,-640.943 417.3547,-644.1935"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="416.6188,-647.6245 427.1986,-647.0614 418.5767,-640.9039 416.6188,-647.6245"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.defaultBase -->
|
||||
<g id="node16" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.defaultBase</title>
|
||||
<g id="a_node16"><a xlink:title="github.com/go-i2p/go-i2p/lib/config.defaultBase | defined in router.go:28 at router.go:29: calling [github.com/go-i2p/go-i2p/lib/config.home]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M490.3115,-52C490.3115,-52 424.1487,-52 424.1487,-52 418.1487,-52 412.1487,-46 412.1487,-40 412.1487,-40 412.1487,-28 412.1487,-28 412.1487,-22 418.1487,-16 424.1487,-16 424.1487,-16 490.3115,-16 490.3115,-16 496.3115,-16 502.3115,-22 502.3115,-28 502.3115,-28 502.3115,-40 502.3115,-40 502.3115,-46 496.3115,-52 490.3115,-52"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">defaultBase</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.home -->
|
||||
<g id="node17" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.home</title>
|
||||
<g id="a_node17"><a xlink:title="github.com/go-i2p/go-i2p/lib/config.home | defined in router.go:20">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M644.8719,-73C644.8719,-73 613.6613,-73 613.6613,-73 607.6613,-73 601.6613,-67 601.6613,-61 601.6613,-61 601.6613,-49 601.6613,-49 601.6613,-43 607.6613,-37 613.6613,-37 613.6613,-37 644.8719,-37 644.8719,-37 650.8719,-37 656.8719,-43 656.8719,-49 656.8719,-49 656.8719,-61 656.8719,-61 656.8719,-67 650.8719,-73 644.8719,-73"/>
|
||||
<text text-anchor="middle" x="629.2666" y="-50.8" font-family="Verdana" font-size="14.00" fill="#000000">home</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.defaultBase->github.com/go-i2p/go-i2p/lib/config.home -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.defaultBase->github.com/go-i2p/go-i2p/lib/config.home</title>
|
||||
<g id="a_edge2"><a xlink:title="at router.go:29: calling [github.com/go-i2p/go-i2p/lib/config.home]">
|
||||
<path fill="none" stroke="#000000" d="M502.4307,-39.5175C530.203,-42.9076 565.3654,-47.1998 591.6199,-50.4046"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="591.2158,-53.8811 601.5663,-51.6187 592.0641,-46.9327 591.2158,-53.8811"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.defaultConfig -->
|
||||
<g id="node18" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.defaultConfig</title>
|
||||
<g id="a_node18"><a xlink:title="github.com/go-i2p/go-i2p/lib/config.defaultConfig | defined in router.go:32 at router.go:33: calling [github.com/go-i2p/go-i2p/lib/config.home]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M495.9892,-113C495.9892,-113 418.471,-113 418.471,-113 412.471,-113 406.471,-107 406.471,-101 406.471,-101 406.471,-89 406.471,-89 406.471,-83 412.471,-77 418.471,-77 418.471,-77 495.9892,-77 495.9892,-77 501.9892,-77 507.9892,-83 507.9892,-89 507.9892,-89 507.9892,-101 507.9892,-101 507.9892,-107 501.9892,-113 495.9892,-113"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-90.8" font-family="Verdana" font-size="14.00" fill="#000000">defaultConfig</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.defaultConfig->github.com/go-i2p/go-i2p/lib/config.home -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.defaultConfig->github.com/go-i2p/go-i2p/lib/config.home</title>
|
||||
<g id="a_edge25"><a xlink:title="at router.go:33: calling [github.com/go-i2p/go-i2p/lib/config.home]">
|
||||
<path fill="none" stroke="#000000" d="M508.3809,-83.107C535.0739,-76.9006 567.1591,-69.4405 591.5644,-63.7661"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="592.568,-67.1262 601.5155,-61.4524 590.9826,-60.3081 592.568,-67.1262"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.init -->
|
||||
<g id="node19" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.init</title>
|
||||
<g id="a_node19"><a xlink:title="github.com/go-i2p/go-i2p/lib/config.init | defined in .:0 at config.go:14: calling [github.com/go-i2p/logger.GetGoI2PLogger] at netdb.go:15: calling [github.com/go-i2p/go-i2p/lib/config.defaultConfig] at router.go:41: calling [github.com/go-i2p/go-i2p/lib/config.defaultConfig] at router.go:40: calling [github.com/go-i2p/go-i2p/lib/config.defaultBase] at router.go:48: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M257.0379,-52C257.0379,-52 227.0379,-52 227.0379,-52 221.0379,-52 215.0379,-46 215.0379,-40 215.0379,-40 215.0379,-28 215.0379,-28 215.0379,-22 221.0379,-16 227.0379,-16 227.0379,-16 257.0379,-16 257.0379,-16 263.0379,-16 269.0379,-22 269.0379,-28 269.0379,-28 269.0379,-40 269.0379,-40 269.0379,-46 263.0379,-52 257.0379,-52"/>
|
||||
<text text-anchor="middle" x="242.0379" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.init->github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.init->github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig</title>
|
||||
<g id="a_edge21"><a xlink:title="at router.go:48: calling [github.com/go-i2p/go-i2p/lib/config.DefaultRouterConfig]">
|
||||
<path fill="none" stroke="#000000" d="M269.1031,-41.4613C283.2977,-46.3943 300.2769,-54.0109 312.7462,-65 360.1517,-106.7781 338.0115,-145.5984 385.7462,-187 388.555,-189.4361 391.59,-191.6958 394.7696,-193.7888"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="393.0815,-196.8568 403.4683,-198.9463 396.6516,-190.8356 393.0815,-196.8568"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.init->github.com/go-i2p/go-i2p/lib/config.defaultBase -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.init->github.com/go-i2p/go-i2p/lib/config.defaultBase</title>
|
||||
<g id="a_edge16"><a xlink:title="at router.go:40: calling [github.com/go-i2p/go-i2p/lib/config.defaultBase]">
|
||||
<path fill="none" stroke="#000000" d="M269.2921,-34C302.4127,-34 359.1306,-34 401.6157,-34"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="401.8132,-37.5001 411.8132,-34 401.8132,-30.5001 401.8132,-37.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.init->github.com/go-i2p/go-i2p/lib/config.defaultConfig -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.init->github.com/go-i2p/go-i2p/lib/config.defaultConfig</title>
|
||||
<g id="a_edge4"><a xlink:title="at netdb.go:15: calling [github.com/go-i2p/go-i2p/lib/config.defaultConfig] at router.go:41: calling [github.com/go-i2p/go-i2p/lib/config.defaultConfig]">
|
||||
<path fill="none" stroke="#000000" d="M269.2921,-41.7257C301.1216,-50.7483 354.7445,-65.9487 396.5846,-77.809"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="395.8274,-81.2322 406.4029,-80.5921 397.7365,-74.4975 395.8274,-81.2322"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="node20" class="node">
|
||||
<title>github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_node20"><a xlink:title="github.com/go-i2p/logger.GetGoI2PLogger | defined in log.go:120">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M505.9196,-174C505.9196,-174 408.5406,-174 408.5406,-174 402.5406,-174 396.5406,-168 396.5406,-162 396.5406,-162 396.5406,-150 396.5406,-150 396.5406,-144 402.5406,-138 408.5406,-138 408.5406,-138 505.9196,-138 505.9196,-138 511.9196,-138 517.9196,-144 517.9196,-150 517.9196,-150 517.9196,-162 517.9196,-162 517.9196,-168 511.9196,-174 505.9196,-174"/>
|
||||
<text text-anchor="middle" x="457.2301" y="-160.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
|
||||
<text text-anchor="middle" x="457.2301" y="-143.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/config.init->github.com/go-i2p/logger.GetGoI2PLogger -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/config.init->github.com/go-i2p/logger.GetGoI2PLogger</title>
|
||||
<g id="a_edge3"><a xlink:title="at config.go:14: calling [github.com/go-i2p/logger.GetGoI2PLogger]">
|
||||
<path fill="none" stroke="#8b4513" d="M269.1253,-43.7794C282.6818,-49.1885 299.0729,-56.5294 312.7462,-65 348.6887,-87.2663 349.6286,-104.0189 385.7462,-126 390.09,-128.6436 394.7086,-131.1603 399.4263,-133.5301"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="398.0428,-136.748 408.5747,-137.9007 401.0603,-130.4317 398.0428,-136.748"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 42 KiB |
@ -1,7 +1,6 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
@ -17,20 +16,12 @@ type RouterConfig struct {
|
||||
Bootstrap *BootstrapConfig
|
||||
}
|
||||
|
||||
func home() string {
|
||||
h, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return h
|
||||
}
|
||||
|
||||
func defaultBase() string {
|
||||
return filepath.Join(home(), GOI2P_BASE_DIR, "base")
|
||||
return filepath.Join(BuildI2PDirPath(), "base")
|
||||
}
|
||||
|
||||
func defaultConfig() string {
|
||||
return filepath.Join(home(), GOI2P_BASE_DIR, "config")
|
||||
return filepath.Join(BuildI2PDirPath(), "config")
|
||||
}
|
||||
|
||||
// defaults for router
|
||||
|
@ -2,7 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/crypto"
|
||||
|
||||
package for i2p specific cryptography
|
||||

|
||||
|
||||
package for i2p specific crpytography
|
||||
|
||||
## Usage
|
||||
|
||||
@ -12,89 +14,31 @@ const (
|
||||
OPAD = byte(0x5C)
|
||||
)
|
||||
```
|
||||
#### type AESSymmetricKey
|
||||
```go
|
||||
type AESSymmetricKey struct {
|
||||
Key []byte // AES key (must be 16, 24, or 32 bytes for AES-128, AES-192, AES-256)
|
||||
IV []byte // Initialization Vector (must be 16 bytes for AES)
|
||||
}
|
||||
```
|
||||
|
||||
AESSymmetricKey represents a symmetric key for AES encryption/decryption
|
||||
|
||||
#### func (AESSymmetricKey) NewEncrypter
|
||||
|
||||
```go
|
||||
func (k *AESSymmetricKey) NewEncrypter() (Encrypter, error)
|
||||
```
|
||||
NewEncrypter creates a new AESSymmetricEncrypter
|
||||
|
||||
#### func (AESSymmetricKey) NewDecrypter
|
||||
|
||||
```go
|
||||
func (k *AESSymmetricKey) NewDecrypter() (Decrypter, error)
|
||||
```
|
||||
NewDecrypter creates a new AESSymmetricDecrypter
|
||||
|
||||
#### func (AESSymmetricKey) Len
|
||||
|
||||
```go
|
||||
func (k *AESSymmetricKey) Len() int
|
||||
```
|
||||
Len returns the length of the key
|
||||
|
||||
#### type AESSymmetricEncrypter
|
||||
|
||||
```go
|
||||
type AESSymmetricEncrypter struct {
|
||||
Key []byte
|
||||
IV []byte
|
||||
}
|
||||
```
|
||||
|
||||
AESSymmetricEncrypter implements the Encrypter interface using AES
|
||||
|
||||
#### func (*AESSymmetricEncrypter) Encrypt
|
||||
|
||||
```go
|
||||
func (e *AESSymmetricEncrypter) Encrypt(data []byte) ([]byte, error)
|
||||
```
|
||||
Encrypt encrypts data using AES-CBC with PKCS#7 padding
|
||||
|
||||
#### type AESSymmetricDecrypter
|
||||
|
||||
```go
|
||||
type AESSymmetricDecrypter struct {
|
||||
Key []byte
|
||||
IV []byte
|
||||
}
|
||||
```
|
||||
|
||||
AESSymmetricDecrypter implements the Decrypter interface using AES
|
||||
|
||||
#### func (*AESSymmetricDecrypter) Decrypt
|
||||
|
||||
```go
|
||||
func (d *AESSymmetricDecrypter) Decrypt(data []byte) ([]byte, error)
|
||||
```
|
||||
Decrypt decrypts data using AES-CBC with PKCS#7 padding
|
||||
```go
|
||||
var (
|
||||
ElgDecryptFail = errors.New("failed to decrypt elgamal encrypted data")
|
||||
ElgEncryptTooBig = errors.New("failed to encrypt data, too big for elgamal")
|
||||
Ed25519EncryptTooBig = oops.Errorf("failed to encrypt data, too big for Ed25519")
|
||||
ErrInvalidPublicKeySize = oops.Errorf("failed to verify: invalid ed25519 public key size")
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
var (
|
||||
ErrBadSignatureSize = errors.New("bad signature size")
|
||||
ErrInvalidKeyFormat = errors.New("invalid key format")
|
||||
ErrInvalidSignature = errors.New("invalid signature")
|
||||
ElgDecryptFail = oops.Errorf("failed to decrypt elgamal encrypted data")
|
||||
ElgEncryptTooBig = oops.Errorf("failed to encrypt data, too big for elgamal")
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
var Ed25519EncryptTooBig = errors.New("failed to encrypt data, too big for Ed25519")
|
||||
var (
|
||||
ErrBadSignatureSize = oops.Errorf("bad signature size")
|
||||
ErrInvalidKeyFormat = oops.Errorf("invalid key format")
|
||||
ErrInvalidSignature = oops.Errorf("invalid signature")
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
var Curve25519EncryptTooBig = oops.Errorf("failed to encrypt data, too big for Curve25519")
|
||||
```
|
||||
|
||||
```go
|
||||
@ -108,6 +52,180 @@ func ElgamalGenerate(priv *elgamal.PrivateKey, rand io.Reader) (err error)
|
||||
```
|
||||
generate an elgamal key pair
|
||||
|
||||
#### type AESSymmetricDecrypter
|
||||
|
||||
```go
|
||||
type AESSymmetricDecrypter struct {
|
||||
Key []byte
|
||||
IV []byte
|
||||
}
|
||||
```
|
||||
|
||||
AESSymmetricDecrypter implements the Decrypter interface using AES
|
||||
|
||||
#### func (*AESSymmetricDecrypter) Decrypt
|
||||
|
||||
```go
|
||||
func (d *AESSymmetricDecrypter) Decrypt(data []byte) ([]byte, error)
|
||||
```
|
||||
Decrypt decrypts data using AES-CBC with PKCS#7 padding
|
||||
|
||||
#### func (*AESSymmetricDecrypter) DecryptNoPadding
|
||||
|
||||
```go
|
||||
func (d *AESSymmetricDecrypter) DecryptNoPadding(data []byte) ([]byte, error)
|
||||
```
|
||||
DecryptNoPadding decrypts data using AES-CBC without padding
|
||||
|
||||
#### type AESSymmetricEncrypter
|
||||
|
||||
```go
|
||||
type AESSymmetricEncrypter struct {
|
||||
Key []byte
|
||||
IV []byte
|
||||
}
|
||||
```
|
||||
|
||||
AESSymmetricEncrypter implements the Encrypter interface using AES
|
||||
|
||||
#### func (*AESSymmetricEncrypter) Encrypt
|
||||
|
||||
```go
|
||||
func (e *AESSymmetricEncrypter) Encrypt(data []byte) ([]byte, error)
|
||||
```
|
||||
Encrypt encrypts data using AES-CBC with PKCS#7 padding
|
||||
|
||||
#### func (*AESSymmetricEncrypter) EncryptNoPadding
|
||||
|
||||
```go
|
||||
func (e *AESSymmetricEncrypter) EncryptNoPadding(data []byte) ([]byte, error)
|
||||
```
|
||||
EncryptNoPadding encrypts data using AES-CBC without padding
|
||||
|
||||
#### type AESSymmetricKey
|
||||
|
||||
```go
|
||||
type AESSymmetricKey struct {
|
||||
Key []byte // AES key (must be 16, 24, or 32 bytes for AES-128, AES-192, AES-256)
|
||||
IV []byte // Initialization Vector (must be 16 bytes for AES)
|
||||
}
|
||||
```
|
||||
|
||||
AESSymmetricKey represents a symmetric key for AES encryption/decryption
|
||||
|
||||
#### func (*AESSymmetricKey) Len
|
||||
|
||||
```go
|
||||
func (k *AESSymmetricKey) Len() int
|
||||
```
|
||||
Len returns the length of the key
|
||||
|
||||
#### func (*AESSymmetricKey) NewDecrypter
|
||||
|
||||
```go
|
||||
func (k *AESSymmetricKey) NewDecrypter() (Decrypter, error)
|
||||
```
|
||||
NewDecrypter creates a new AESSymmetricDecrypter
|
||||
|
||||
#### func (*AESSymmetricKey) NewEncrypter
|
||||
|
||||
```go
|
||||
func (k *AESSymmetricKey) NewEncrypter() (Encrypter, error)
|
||||
```
|
||||
NewEncrypter creates a new AESSymmetricEncrypter
|
||||
|
||||
#### type Curve25519Encryption
|
||||
|
||||
```go
|
||||
type Curve25519Encryption struct {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### func (*Curve25519Encryption) Encrypt
|
||||
|
||||
```go
|
||||
func (curve25519 *Curve25519Encryption) Encrypt(data []byte) (enc []byte, err error)
|
||||
```
|
||||
|
||||
#### func (*Curve25519Encryption) EncryptPadding
|
||||
|
||||
```go
|
||||
func (curve25519 *Curve25519Encryption) EncryptPadding(data []byte, zeroPadding bool) (encrypted []byte, err error)
|
||||
```
|
||||
|
||||
#### type Curve25519PrivateKey
|
||||
|
||||
```go
|
||||
type Curve25519PrivateKey curve25519.PrivateKey
|
||||
```
|
||||
|
||||
|
||||
#### type Curve25519PublicKey
|
||||
|
||||
```go
|
||||
type Curve25519PublicKey []byte
|
||||
```
|
||||
|
||||
|
||||
#### func (Curve25519PublicKey) Len
|
||||
|
||||
```go
|
||||
func (k Curve25519PublicKey) Len() int
|
||||
```
|
||||
|
||||
#### func (Curve25519PublicKey) NewEncrypter
|
||||
|
||||
```go
|
||||
func (elg Curve25519PublicKey) NewEncrypter() (enc Encrypter, err error)
|
||||
```
|
||||
|
||||
#### func (Curve25519PublicKey) NewVerifier
|
||||
|
||||
```go
|
||||
func (k Curve25519PublicKey) NewVerifier() (v Verifier, err error)
|
||||
```
|
||||
|
||||
#### type Curve25519Signer
|
||||
|
||||
```go
|
||||
type Curve25519Signer struct {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### func (*Curve25519Signer) Sign
|
||||
|
||||
```go
|
||||
func (s *Curve25519Signer) Sign(data []byte) (sig []byte, err error)
|
||||
```
|
||||
|
||||
#### func (*Curve25519Signer) SignHash
|
||||
|
||||
```go
|
||||
func (s *Curve25519Signer) SignHash(h []byte) (sig []byte, err error)
|
||||
```
|
||||
|
||||
#### type Curve25519Verifier
|
||||
|
||||
```go
|
||||
type Curve25519Verifier struct {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### func (*Curve25519Verifier) Verify
|
||||
|
||||
```go
|
||||
func (v *Curve25519Verifier) Verify(data, sig []byte) (err error)
|
||||
```
|
||||
|
||||
#### func (*Curve25519Verifier) VerifyHash
|
||||
|
||||
```go
|
||||
func (v *Curve25519Verifier) VerifyHash(h, sig []byte) (err error)
|
||||
```
|
||||
|
||||
#### type DSAPrivateKey
|
||||
|
||||
```go
|
||||
@ -147,6 +265,12 @@ type DSAPublicKey [128]byte
|
||||
```
|
||||
|
||||
|
||||
#### func (DSAPublicKey) Bytes
|
||||
|
||||
```go
|
||||
func (k DSAPublicKey) Bytes() []byte
|
||||
```
|
||||
|
||||
#### func (DSAPublicKey) Len
|
||||
|
||||
```go
|
||||
@ -251,6 +375,12 @@ type ECP256PublicKey [64]byte
|
||||
```
|
||||
|
||||
|
||||
#### func (ECP256PublicKey) Bytes
|
||||
|
||||
```go
|
||||
func (k ECP256PublicKey) Bytes() []byte
|
||||
```
|
||||
|
||||
#### func (ECP256PublicKey) Len
|
||||
|
||||
```go
|
||||
@ -277,6 +407,12 @@ type ECP384PublicKey [96]byte
|
||||
```
|
||||
|
||||
|
||||
#### func (ECP384PublicKey) Bytes
|
||||
|
||||
```go
|
||||
func (k ECP384PublicKey) Bytes() []byte
|
||||
```
|
||||
|
||||
#### func (ECP384PublicKey) Len
|
||||
|
||||
```go
|
||||
@ -303,6 +439,12 @@ type ECP521PublicKey [132]byte
|
||||
```
|
||||
|
||||
|
||||
#### func (ECP521PublicKey) Bytes
|
||||
|
||||
```go
|
||||
func (k ECP521PublicKey) Bytes() []byte
|
||||
```
|
||||
|
||||
#### func (ECP521PublicKey) Len
|
||||
|
||||
```go
|
||||
@ -315,6 +457,26 @@ func (k ECP521PublicKey) Len() int
|
||||
func (k ECP521PublicKey) NewVerifier() (Verifier, error)
|
||||
```
|
||||
|
||||
#### type Ed25519Decrypter
|
||||
|
||||
```go
|
||||
type Ed25519Decrypter struct {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### func (*Ed25519Decrypter) Decrypt
|
||||
|
||||
```go
|
||||
func (d *Ed25519Decrypter) Decrypt(data []byte) ([]byte, error)
|
||||
```
|
||||
|
||||
#### func (*Ed25519Decrypter) DecryptPadding
|
||||
|
||||
```go
|
||||
func (d *Ed25519Decrypter) DecryptPadding(data []byte, zeroPadding bool) ([]byte, error)
|
||||
```
|
||||
|
||||
#### type Ed25519Encryption
|
||||
|
||||
```go
|
||||
@ -342,6 +504,48 @@ type Ed25519PrivateKey ed25519.PrivateKey
|
||||
```
|
||||
|
||||
|
||||
#### func (Ed25519PrivateKey) Bytes
|
||||
|
||||
```go
|
||||
func (k Ed25519PrivateKey) Bytes() []byte
|
||||
```
|
||||
|
||||
#### func (Ed25519PrivateKey) Generate
|
||||
|
||||
```go
|
||||
func (k Ed25519PrivateKey) Generate() (SigningPrivateKey, error)
|
||||
```
|
||||
|
||||
#### func (Ed25519PrivateKey) Len
|
||||
|
||||
```go
|
||||
func (k Ed25519PrivateKey) Len() int
|
||||
```
|
||||
|
||||
#### func (Ed25519PrivateKey) NewDecrypter
|
||||
|
||||
```go
|
||||
func (k Ed25519PrivateKey) NewDecrypter() (Decrypter, error)
|
||||
```
|
||||
|
||||
#### func (Ed25519PrivateKey) NewSigner
|
||||
|
||||
```go
|
||||
func (k Ed25519PrivateKey) NewSigner() (Signer, error)
|
||||
```
|
||||
|
||||
#### func (Ed25519PrivateKey) Public
|
||||
|
||||
```go
|
||||
func (k Ed25519PrivateKey) Public() (SigningPublicKey, error)
|
||||
```
|
||||
|
||||
#### func (Ed25519PrivateKey) Zero
|
||||
|
||||
```go
|
||||
func (k Ed25519PrivateKey) Zero()
|
||||
```
|
||||
|
||||
#### type Ed25519PublicKey
|
||||
|
||||
```go
|
||||
@ -349,6 +553,18 @@ type Ed25519PublicKey []byte
|
||||
```
|
||||
|
||||
|
||||
#### func CreateEd25519PublicKeyFromBytes
|
||||
|
||||
```go
|
||||
func CreateEd25519PublicKeyFromBytes(data []byte) (Ed25519PublicKey, error)
|
||||
```
|
||||
|
||||
#### func (Ed25519PublicKey) Bytes
|
||||
|
||||
```go
|
||||
func (k Ed25519PublicKey) Bytes() []byte
|
||||
```
|
||||
|
||||
#### func (Ed25519PublicKey) Len
|
||||
|
||||
```go
|
||||
@ -433,6 +649,12 @@ type ElgPublicKey [256]byte
|
||||
```
|
||||
|
||||
|
||||
#### func (ElgPublicKey) Bytes
|
||||
|
||||
```go
|
||||
func (elg ElgPublicKey) Bytes() []byte
|
||||
```
|
||||
|
||||
#### func (ElgPublicKey) Len
|
||||
|
||||
```go
|
||||
@ -509,6 +731,21 @@ type PrivateEncryptionKey interface {
|
||||
```
|
||||
|
||||
|
||||
#### type PrivateKey
|
||||
|
||||
```go
|
||||
type PrivateKey interface {
|
||||
// Public returns the public key corresponding to this private key
|
||||
Public() (SigningPublicKey, error)
|
||||
// Bytes returns the raw bytes of this private key
|
||||
Bytes() []byte
|
||||
// Zero clears all sensitive data from the private key
|
||||
Zero()
|
||||
}
|
||||
```
|
||||
|
||||
PrivateKey is an interface for private keys
|
||||
|
||||
#### type PublicEncryptionKey
|
||||
|
||||
```go
|
||||
@ -527,7 +764,7 @@ type PublicEncryptionKey interface {
|
||||
```go
|
||||
type PublicKey interface {
|
||||
Len() int
|
||||
NewEncrypter() (Encrypter, error)
|
||||
Bytes() []byte
|
||||
}
|
||||
```
|
||||
|
||||
@ -546,6 +783,27 @@ type RSA2048PublicKey [256]byte
|
||||
```
|
||||
|
||||
|
||||
#### func (RSA2048PublicKey) Bytes
|
||||
|
||||
```go
|
||||
func (r RSA2048PublicKey) Bytes() []byte
|
||||
```
|
||||
Bytes implements SigningPublicKey.
|
||||
|
||||
#### func (RSA2048PublicKey) Len
|
||||
|
||||
```go
|
||||
func (r RSA2048PublicKey) Len() int
|
||||
```
|
||||
Len implements SigningPublicKey.
|
||||
|
||||
#### func (RSA2048PublicKey) NewVerifier
|
||||
|
||||
```go
|
||||
func (r RSA2048PublicKey) NewVerifier() (Verifier, error)
|
||||
```
|
||||
NewVerifier implements SigningPublicKey.
|
||||
|
||||
#### type RSA3072PrivateKey
|
||||
|
||||
```go
|
||||
@ -560,6 +818,27 @@ type RSA3072PublicKey [384]byte
|
||||
```
|
||||
|
||||
|
||||
#### func (RSA3072PublicKey) Bytes
|
||||
|
||||
```go
|
||||
func (r RSA3072PublicKey) Bytes() []byte
|
||||
```
|
||||
Bytes implements SigningPublicKey.
|
||||
|
||||
#### func (RSA3072PublicKey) Len
|
||||
|
||||
```go
|
||||
func (r RSA3072PublicKey) Len() int
|
||||
```
|
||||
Len implements SigningPublicKey.
|
||||
|
||||
#### func (RSA3072PublicKey) NewVerifier
|
||||
|
||||
```go
|
||||
func (r RSA3072PublicKey) NewVerifier() (Verifier, error)
|
||||
```
|
||||
NewVerifier implements SigningPublicKey.
|
||||
|
||||
#### type RSA4096PrivateKey
|
||||
|
||||
```go
|
||||
@ -574,6 +853,38 @@ type RSA4096PublicKey [512]byte
|
||||
```
|
||||
|
||||
|
||||
#### func (RSA4096PublicKey) Bytes
|
||||
|
||||
```go
|
||||
func (r RSA4096PublicKey) Bytes() []byte
|
||||
```
|
||||
Bytes implements SigningPublicKey.
|
||||
|
||||
#### func (RSA4096PublicKey) Len
|
||||
|
||||
```go
|
||||
func (r RSA4096PublicKey) Len() int
|
||||
```
|
||||
Len implements SigningPublicKey.
|
||||
|
||||
#### func (RSA4096PublicKey) NewVerifier
|
||||
|
||||
```go
|
||||
func (r RSA4096PublicKey) NewVerifier() (Verifier, error)
|
||||
```
|
||||
NewVerifier implements SigningPublicKey.
|
||||
|
||||
#### type RecievingPublicKey
|
||||
|
||||
```go
|
||||
type RecievingPublicKey interface {
|
||||
Len() int
|
||||
Bytes() []byte
|
||||
NewEncrypter() (Encrypter, error)
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### type Signer
|
||||
|
||||
```go
|
||||
@ -618,6 +929,7 @@ type SigningPublicKey interface {
|
||||
NewVerifier() (Verifier, error)
|
||||
// get the size of this public key
|
||||
Len() int
|
||||
Bytes() []byte
|
||||
}
|
||||
```
|
||||
|
||||
@ -686,3 +998,9 @@ type Verifier interface {
|
||||
```
|
||||
|
||||
type for verifying signatures
|
||||
|
||||
|
||||
|
||||
crypto
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/crypto
|
@ -4,9 +4,9 @@ import (
|
||||
"bytes"
|
||||
"crypto/aes"
|
||||
"crypto/cipher"
|
||||
"fmt"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -61,7 +61,7 @@ func (d *AESSymmetricDecrypter) Decrypt(data []byte) ([]byte, error) {
|
||||
|
||||
if len(data)%aes.BlockSize != 0 {
|
||||
log.Error("Ciphertext is not a multiple of the block size")
|
||||
return nil, fmt.Errorf("ciphertext is not a multiple of the block size")
|
||||
return nil, oops.Errorf("ciphertext is not a multiple of the block size")
|
||||
}
|
||||
|
||||
plaintext := make([]byte, len(data))
|
||||
@ -120,18 +120,18 @@ func pkcs7Unpad(data []byte) ([]byte, error) {
|
||||
length := len(data)
|
||||
if length == 0 {
|
||||
log.Error("Data is empty")
|
||||
return nil, fmt.Errorf("data is empty")
|
||||
return nil, oops.Errorf("data is empty")
|
||||
}
|
||||
padding := int(data[length-1])
|
||||
if padding == 0 || padding > aes.BlockSize {
|
||||
log.WithField("padding", padding).Error("Invalid padding")
|
||||
return nil, fmt.Errorf("invalid padding")
|
||||
return nil, oops.Errorf("invalid padding")
|
||||
}
|
||||
paddingStart := length - padding
|
||||
for i := paddingStart; i < length; i++ {
|
||||
if data[i] != byte(padding) {
|
||||
log.Error("Invalid padding")
|
||||
return nil, fmt.Errorf("invalid padding")
|
||||
return nil, oops.Errorf("invalid padding")
|
||||
}
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ func pkcs7Unpad(data []byte) ([]byte, error) {
|
||||
// EncryptNoPadding encrypts data using AES-CBC without padding
|
||||
func (e *AESSymmetricEncrypter) EncryptNoPadding(data []byte) ([]byte, error) {
|
||||
if len(data)%aes.BlockSize != 0 {
|
||||
return nil, fmt.Errorf("data length must be a multiple of block size")
|
||||
return nil, oops.Errorf("data length must be a multiple of block size")
|
||||
}
|
||||
|
||||
block, err := aes.NewCipher(e.Key)
|
||||
@ -161,7 +161,7 @@ func (e *AESSymmetricEncrypter) EncryptNoPadding(data []byte) ([]byte, error) {
|
||||
// DecryptNoPadding decrypts data using AES-CBC without padding
|
||||
func (d *AESSymmetricDecrypter) DecryptNoPadding(data []byte) ([]byte, error) {
|
||||
if len(data)%aes.BlockSize != 0 {
|
||||
return nil, fmt.Errorf("data length must be a multiple of block size")
|
||||
return nil, oops.Errorf("data length must be a multiple of block size")
|
||||
}
|
||||
|
||||
block, err := aes.NewCipher(d.Key)
|
||||
|
13
lib/crypto/crypto.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="0pt" height="0pt"
|
||||
viewBox="0.00 0.00 0.00 0.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 0)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,0 0,0 0,0 0,0"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 584 B |
@ -4,16 +4,16 @@ import (
|
||||
"crypto/rand"
|
||||
"crypto/sha256"
|
||||
"crypto/sha512"
|
||||
"errors"
|
||||
"io"
|
||||
"math/big"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
curve25519 "go.step.sm/crypto/x25519"
|
||||
)
|
||||
|
||||
var Curve25519EncryptTooBig = errors.New("failed to encrypt data, too big for Curve25519")
|
||||
var Curve25519EncryptTooBig = oops.Errorf("failed to encrypt data, too big for Curve25519")
|
||||
|
||||
type Curve25519PublicKey []byte
|
||||
|
||||
@ -132,14 +132,14 @@ func (v *Curve25519Verifier) VerifyHash(h, sig []byte) (err error) {
|
||||
}
|
||||
if len(v.k) != curve25519.PublicKeySize {
|
||||
log.Error("Invalid Curve25519 public key size")
|
||||
err = errors.New("failed to verify: invalid curve25519 public key size")
|
||||
err = oops.Errorf("failed to verify: invalid curve25519 public key size")
|
||||
return
|
||||
}
|
||||
|
||||
ok := curve25519.Verify(v.k, h, sig)
|
||||
if !ok {
|
||||
log.Error("Invalid signature")
|
||||
err = errors.New("failed to verify: invalid signature")
|
||||
err = oops.Errorf("failed to verify: invalid signature")
|
||||
} else {
|
||||
log.Debug("Hash verified successfully")
|
||||
}
|
||||
@ -168,7 +168,7 @@ func (s *Curve25519Signer) Sign(data []byte) (sig []byte, err error) {
|
||||
|
||||
if len(s.k) != curve25519.PrivateKeySize {
|
||||
log.Error("Invalid Curve25519 private key size")
|
||||
err = errors.New("failed to sign: invalid curve25519 private key size")
|
||||
err = oops.Errorf("failed to sign: invalid curve25519 private key size")
|
||||
return
|
||||
}
|
||||
h := sha512.Sum512(data)
|
||||
|
@ -1,21 +1,22 @@
|
||||
package crypto
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/ed25519"
|
||||
"crypto/rand"
|
||||
"crypto/sha256"
|
||||
"crypto/sha512"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"math/big"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var (
|
||||
Ed25519EncryptTooBig = errors.New("failed to encrypt data, too big for Ed25519")
|
||||
ErrInvalidPublicKeySize = errors.New("failed to verify: invalid ed25519 public key size")
|
||||
Ed25519EncryptTooBig = oops.Errorf("failed to encrypt data, too big for Ed25519")
|
||||
ErrInvalidPublicKeySize = oops.Errorf("failed to verify: invalid ed25519 public key size")
|
||||
)
|
||||
|
||||
type Ed25519PublicKey []byte
|
||||
@ -132,7 +133,7 @@ func (elg Ed25519PublicKey) NewEncrypter() (enc Encrypter, err error) {
|
||||
log.Debug("Creating new Ed25519 encrypter")
|
||||
k := createEd25519PublicKey(elg[:])
|
||||
if k == nil {
|
||||
return nil, errors.New("invalid public key format")
|
||||
return nil, oops.Errorf("invalid public key format")
|
||||
}
|
||||
|
||||
enc, err = createEd25519Encryption(k, rand.Reader)
|
||||
@ -158,14 +159,14 @@ func (v *Ed25519Verifier) VerifyHash(h, sig []byte) (err error) {
|
||||
}
|
||||
if len(v.k) != ed25519.PublicKeySize {
|
||||
log.Error("Invalid Ed25519 public key size")
|
||||
err = errors.New("failed to verify: invalid ed25519 public key size")
|
||||
err = oops.Errorf("failed to verify: invalid ed25519 public key size")
|
||||
return
|
||||
}
|
||||
|
||||
ok := ed25519.Verify(v.k, h, sig)
|
||||
if !ok {
|
||||
log.Warn("Invalid Ed25519 signature")
|
||||
err = errors.New("failed to verify: invalid signature")
|
||||
err = oops.Errorf("failed to verify: invalid signature")
|
||||
} else {
|
||||
log.Debug("Ed25519 signature verified successfully")
|
||||
}
|
||||
@ -185,14 +186,84 @@ func (v *Ed25519Verifier) Verify(data, sig []byte) (err error) {
|
||||
|
||||
type Ed25519PrivateKey ed25519.PrivateKey
|
||||
|
||||
func (k Ed25519PrivateKey) Bytes() []byte {
|
||||
return k
|
||||
}
|
||||
|
||||
func (k Ed25519PrivateKey) Zero() {
|
||||
for i := range k {
|
||||
k[i] = 0
|
||||
}
|
||||
}
|
||||
|
||||
func (k Ed25519PrivateKey) NewDecrypter() (Decrypter, error) {
|
||||
// TODO implement me
|
||||
panic("implement me")
|
||||
if len(k) != ed25519.PrivateKeySize {
|
||||
return nil, oops.Errorf("invalid ed25519 private key size")
|
||||
}
|
||||
d := &Ed25519Decrypter{
|
||||
privateKey: k,
|
||||
}
|
||||
return d, nil
|
||||
}
|
||||
|
||||
type Ed25519Decrypter struct {
|
||||
privateKey Ed25519PrivateKey
|
||||
}
|
||||
|
||||
func (d *Ed25519Decrypter) Decrypt(data []byte) ([]byte, error) {
|
||||
return d.DecryptPadding(data, true)
|
||||
}
|
||||
|
||||
func (d *Ed25519Decrypter) DecryptPadding(data []byte, zeroPadding bool) ([]byte, error) {
|
||||
if len(data) != 514 && len(data) != 512 {
|
||||
return nil, oops.Errorf("invalid ciphertext length")
|
||||
}
|
||||
|
||||
// Extract components based on padding
|
||||
var aBytes, bBytes []byte
|
||||
if zeroPadding {
|
||||
aBytes = data[1:258]
|
||||
bBytes = data[258:]
|
||||
} else {
|
||||
aBytes = data[0:256]
|
||||
bBytes = data[256:]
|
||||
}
|
||||
|
||||
// Convert to big integers
|
||||
a := new(big.Int).SetBytes(aBytes)
|
||||
b := new(big.Int).SetBytes(bBytes)
|
||||
|
||||
// Compute p = 2^255 - 19
|
||||
p := new(big.Int).Sub(new(big.Int).Lsh(big.NewInt(1), 255), big.NewInt(19))
|
||||
|
||||
// Use private key to decrypt
|
||||
m := new(big.Int).ModInverse(a, p)
|
||||
if m == nil {
|
||||
return nil, oops.Errorf("decryption failed: modular inverse does not exist")
|
||||
}
|
||||
|
||||
decrypted := new(big.Int).Mod(new(big.Int).Mul(b, m), p).Bytes()
|
||||
|
||||
// Remove padding and validate hash
|
||||
if len(decrypted) < 33 {
|
||||
return nil, oops.Errorf("decryption failed: result too short")
|
||||
}
|
||||
|
||||
hashBytes := decrypted[1:33]
|
||||
message := decrypted[33:]
|
||||
|
||||
// Verify hash
|
||||
actualHash := sha256.Sum256(message)
|
||||
if !bytes.Equal(hashBytes, actualHash[:]) {
|
||||
return nil, oops.Errorf("decryption failed: hash verification failed")
|
||||
}
|
||||
|
||||
return message, nil
|
||||
}
|
||||
|
||||
func (k Ed25519PrivateKey) NewSigner() (Signer, error) {
|
||||
if len(k) != ed25519.PrivateKeySize {
|
||||
return nil, errors.New("invalid ed25519 private key size")
|
||||
return nil, oops.Errorf("invalid ed25519 private key size")
|
||||
}
|
||||
return &Ed25519Signer{k: k}, nil
|
||||
}
|
||||
@ -201,27 +272,39 @@ func (k Ed25519PrivateKey) Len() int {
|
||||
return len(k)
|
||||
}
|
||||
|
||||
func (k *Ed25519PrivateKey) Generate() (SigningPrivateKey, error) {
|
||||
// Generate a new Ed25519 key pair
|
||||
func (k Ed25519PrivateKey) Generate() (SigningPrivateKey, error) {
|
||||
_, priv, err := ed25519.GenerateKey(rand.Reader)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, oops.Errorf("failed to generate ed25519 key: %v", err)
|
||||
}
|
||||
// Assign the generated private key to the receiver
|
||||
*k = Ed25519PrivateKey(priv)
|
||||
return k, nil
|
||||
// Copy the full private key (includes public key)
|
||||
newKey := make(Ed25519PrivateKey, ed25519.PrivateKeySize)
|
||||
copy(newKey, priv)
|
||||
return newKey, nil
|
||||
}
|
||||
|
||||
func (k Ed25519PrivateKey) Public() (SigningPublicKey, error) {
|
||||
fmt.Printf("Ed25519PrivateKey.Public(): len(k) = %d\n", len(k))
|
||||
if len(k) != ed25519.PrivateKeySize {
|
||||
return nil, fmt.Errorf("invalid ed25519 private key size: expected %d, got %d", ed25519.PrivateKeySize, len(k))
|
||||
return nil, oops.Errorf("invalid ed25519 private key size: expected %d, got %d",
|
||||
ed25519.PrivateKeySize, len(k))
|
||||
}
|
||||
pubKey := k[32:]
|
||||
// Extract public key portion (last 32 bytes)
|
||||
pubKey := ed25519.PrivateKey(k).Public().(ed25519.PublicKey)
|
||||
fmt.Printf("Ed25519PrivateKey.Public(): extracted pubKey length: %d\n", len(pubKey))
|
||||
return Ed25519PublicKey(pubKey), nil
|
||||
}
|
||||
|
||||
func CreateEd25519PrivateKeyFromBytes(data []byte) (Ed25519PrivateKey, error) {
|
||||
if len(data) != ed25519.PrivateKeySize {
|
||||
return nil, oops.Errorf("invalid ed25519 private key size: expected %d, got %d",
|
||||
ed25519.PrivateKeySize, len(data))
|
||||
}
|
||||
privKey := make(Ed25519PrivateKey, ed25519.PrivateKeySize)
|
||||
copy(privKey, data)
|
||||
return privKey, nil
|
||||
}
|
||||
|
||||
type Ed25519Signer struct {
|
||||
k []byte
|
||||
}
|
||||
@ -231,7 +314,7 @@ func (s *Ed25519Signer) Sign(data []byte) (sig []byte, err error) {
|
||||
|
||||
if len(s.k) != ed25519.PrivateKeySize {
|
||||
log.Error("Invalid Ed25519 private key size")
|
||||
err = errors.New("failed to sign: invalid ed25519 private key size")
|
||||
err = oops.Errorf("failed to sign: invalid ed25519 private key size")
|
||||
return
|
||||
}
|
||||
h := sha512.Sum512(data)
|
||||
|
@ -4,10 +4,10 @@ import (
|
||||
"crypto/rand"
|
||||
"crypto/sha256"
|
||||
"crypto/subtle"
|
||||
"errors"
|
||||
"io"
|
||||
"math/big"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"golang.org/x/crypto/openpgp/elgamal"
|
||||
@ -38,8 +38,8 @@ var (
|
||||
)
|
||||
|
||||
var (
|
||||
ElgDecryptFail = errors.New("failed to decrypt elgamal encrypted data")
|
||||
ElgEncryptTooBig = errors.New("failed to encrypt data, too big for elgamal")
|
||||
ElgDecryptFail = oops.Errorf("failed to decrypt elgamal encrypted data")
|
||||
ElgEncryptTooBig = oops.Errorf("failed to encrypt data, too big for elgamal")
|
||||
)
|
||||
|
||||
// generate an elgamal key pair
|
||||
|
11
lib/crypto/privatekey.go
Normal file
@ -0,0 +1,11 @@
|
||||
package crypto
|
||||
|
||||
// PrivateKey is an interface for private keys
|
||||
type PrivateKey interface {
|
||||
// Public returns the public key corresponding to this private key
|
||||
Public() (SigningPublicKey, error)
|
||||
// Bytes returns the raw bytes of this private key
|
||||
Bytes() []byte
|
||||
// Zero clears all sensitive data from the private key
|
||||
Zero()
|
||||
}
|
6
lib/crypto/public.go
Normal file
@ -0,0 +1,6 @@
|
||||
package crypto
|
||||
|
||||
type PublicKey interface {
|
||||
Len() int
|
||||
Bytes() []byte
|
||||
}
|
@ -1,13 +1,11 @@
|
||||
package crypto
|
||||
|
||||
import (
|
||||
"errors"
|
||||
)
|
||||
import "github.com/samber/oops"
|
||||
|
||||
var (
|
||||
ErrBadSignatureSize = errors.New("bad signature size")
|
||||
ErrInvalidKeyFormat = errors.New("invalid key format")
|
||||
ErrInvalidSignature = errors.New("invalid signature")
|
||||
ErrBadSignatureSize = oops.Errorf("bad signature size")
|
||||
ErrInvalidKeyFormat = oops.Errorf("invalid key format")
|
||||
ErrInvalidSignature = oops.Errorf("invalid signature")
|
||||
)
|
||||
|
||||
// type for verifying signatures
|
||||
@ -28,7 +26,7 @@ type SigningPublicKey interface {
|
||||
Len() int
|
||||
Bytes() []byte
|
||||
}
|
||||
type PublicKey interface {
|
||||
type RecievingPublicKey interface {
|
||||
Len() int
|
||||
Bytes() []byte
|
||||
NewEncrypter() (Encrypter, error)
|
||||
|
@ -2,6 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/i2np"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
@ -23,11 +26,11 @@ const (
|
||||
```
|
||||
|
||||
```go
|
||||
var ERR_BUILD_REQUEST_RECORD_NOT_ENOUGH_DATA = errors.New("not enough i2np build request record data")
|
||||
var ERR_BUILD_REQUEST_RECORD_NOT_ENOUGH_DATA = oops.Errorf("not enough i2np build request record data")
|
||||
```
|
||||
|
||||
```go
|
||||
var ERR_I2NP_NOT_ENOUGH_DATA = errors.New("not enough i2np header data")
|
||||
var ERR_I2NP_NOT_ENOUGH_DATA = oops.Errorf("not enough i2np header data")
|
||||
```
|
||||
|
||||
#### func ReadI2NPNTCPData
|
||||
@ -341,3 +344,9 @@ type VariableTunnelBuildReply struct {
|
||||
BuildResponseRecords []BuildResponseRecord
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
i2np
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/i2np
|
@ -1,15 +1,15 @@
|
||||
package i2np
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
common "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
"github.com/go-i2p/go-i2p/lib/common/session_key"
|
||||
"github.com/go-i2p/go-i2p/lib/tunnel"
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/go-i2p/logger"
|
||||
)
|
||||
|
||||
var log = logger.GetGoI2PLogger()
|
||||
@ -173,7 +173,7 @@ type BuildRequestRecord struct {
|
||||
Padding [29]byte
|
||||
}
|
||||
|
||||
var ERR_BUILD_REQUEST_RECORD_NOT_ENOUGH_DATA = errors.New("not enough i2np build request record data")
|
||||
var ERR_BUILD_REQUEST_RECORD_NOT_ENOUGH_DATA = oops.Errorf("not enough i2np build request record data")
|
||||
|
||||
func ReadBuildRequestRecord(data []byte) (BuildRequestRecord, error) {
|
||||
log.Debug("Reading BuildRequestRecord")
|
||||
|
@ -2,6 +2,9 @@
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/i2np/fuzz/header"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
@ -10,3 +13,9 @@
|
||||
```go
|
||||
func Fuzz(data []byte) int
|
||||
```
|
||||
|
||||
|
||||
|
||||
exportable
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/i2np/fuzz/header
|
46
lib/i2np/fuzz/header/exportable.svg
Normal file
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="318pt" height="98pt"
|
||||
viewBox="0.00 0.00 317.50 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 98)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-98 317.505,-98 317.505,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-90 309.505,-90 309.505,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="158.7525" y="-69.8" font-family="Arial" font-size="18.00" fill="#000000">exportable</text>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/i2np/fuzz/header.Fuzz -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/i2np/fuzz/header.Fuzz</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/i2np/fuzz/header.Fuzz | defined in fuzz.go:5 at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/i2np.ReadI2NPNTCPHeader]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-52C58,-52 28,-52 28,-52 22,-52 16,-46 16,-40 16,-40 16,-28 16,-28 16,-22 22,-16 28,-16 28,-16 58,-16 58,-16 64,-16 70,-22 70,-28 70,-28 70,-40 70,-40 70,-46 64,-52 58,-52"/>
|
||||
<text text-anchor="middle" x="43" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/i2np.ReadI2NPNTCPHeader -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/i2np.ReadI2NPNTCPHeader</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/i2np.ReadI2NPNTCPHeader | defined in header.go:97">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M289.2583,-52C289.2583,-52 155.2467,-52 155.2467,-52 149.2467,-52 143.2467,-46 143.2467,-40 143.2467,-40 143.2467,-28 143.2467,-28 143.2467,-22 149.2467,-16 155.2467,-16 155.2467,-16 289.2583,-16 289.2583,-16 295.2583,-16 301.2583,-22 301.2583,-28 301.2583,-28 301.2583,-40 301.2583,-40 301.2583,-46 295.2583,-52 289.2583,-52"/>
|
||||
<text text-anchor="middle" x="222.2525" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">i2np</text>
|
||||
<text text-anchor="middle" x="222.2525" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadI2NPNTCPHeader</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/i2np/fuzz/header.Fuzz->github.com/go-i2p/go-i2p/lib/i2np.ReadI2NPNTCPHeader -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/i2np/fuzz/header.Fuzz->github.com/go-i2p/go-i2p/lib/i2np.ReadI2NPNTCPHeader</title>
|
||||
<g id="a_edge1"><a xlink:title="at fuzz.go:6: calling [github.com/go-i2p/go-i2p/lib/i2np.ReadI2NPNTCPHeader]">
|
||||
<path fill="none" stroke="#8b4513" d="M70.2246,-34C87.2023,-34 110.1106,-34 132.9875,-34"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="133.1223,-37.5001 143.1222,-34 133.1222,-30.5001 133.1223,-37.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
@ -1,9 +1,9 @@
|
||||
package i2np
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"github.com/samber/oops"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
datalib "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
@ -90,7 +90,7 @@ type I2NPSSUHeader struct {
|
||||
Expiration time.Time
|
||||
}
|
||||
|
||||
var ERR_I2NP_NOT_ENOUGH_DATA = errors.New("not enough i2np header data")
|
||||
var ERR_I2NP_NOT_ENOUGH_DATA = oops.Errorf("not enough i2np header data")
|
||||
|
||||
// Read an entire I2NP message and return the parsed header
|
||||
// with embedded encrypted data
|
||||
|
1104
lib/i2np/i2np.svg
Normal file
After Width: | Height: | Size: 111 KiB |
105
lib/keys/README.md
Normal file
@ -0,0 +1,105 @@
|
||||
# keys
|
||||
--
|
||||
import "github.com/go-i2p/go-i2p/lib/keys"
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
#### type KeyStore
|
||||
|
||||
```go
|
||||
type KeyStore interface {
|
||||
KeyID() string
|
||||
// GetKeys returns the public and private keys
|
||||
GetKeys() (publicKey crypto.PublicKey, privateKey crypto.PrivateKey, err error)
|
||||
// StoreKeys stores the keys
|
||||
StoreKeys() error
|
||||
}
|
||||
```
|
||||
|
||||
KeyStore is an interface for storing and retrieving keys
|
||||
|
||||
#### type KeyStoreImpl
|
||||
|
||||
```go
|
||||
type KeyStoreImpl struct {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### func NewKeyStoreImpl
|
||||
|
||||
```go
|
||||
func NewKeyStoreImpl(dir, name string, privateKey crypto.PrivateKey) *KeyStoreImpl
|
||||
```
|
||||
|
||||
#### func (*KeyStoreImpl) GetKeys
|
||||
|
||||
```go
|
||||
func (ks *KeyStoreImpl) GetKeys() (crypto.PublicKey, crypto.PrivateKey, error)
|
||||
```
|
||||
|
||||
#### func (*KeyStoreImpl) KeyID
|
||||
|
||||
```go
|
||||
func (ks *KeyStoreImpl) KeyID() string
|
||||
```
|
||||
|
||||
#### func (*KeyStoreImpl) StoreKeys
|
||||
|
||||
```go
|
||||
func (ks *KeyStoreImpl) StoreKeys() error
|
||||
```
|
||||
|
||||
#### type RouterInfoKeystore
|
||||
|
||||
```go
|
||||
type RouterInfoKeystore struct {
|
||||
*sntp.RouterTimestamper
|
||||
}
|
||||
```
|
||||
|
||||
RouterInfoKeystore is an implementation of KeyStore for storing and retrieving
|
||||
RouterInfo private keys and exporting RouterInfos
|
||||
|
||||
#### func NewRouterInfoKeystore
|
||||
|
||||
```go
|
||||
func NewRouterInfoKeystore(dir, name string) (*RouterInfoKeystore, error)
|
||||
```
|
||||
NewRouterInfoKeystore creates a new RouterInfoKeystore with fresh and new
|
||||
private keys it accepts a directory to store the keys in and a name for the keys
|
||||
then it generates new private keys for the routerInfo if none exist
|
||||
|
||||
#### func (*RouterInfoKeystore) ConstructRouterInfo
|
||||
|
||||
```go
|
||||
func (ks *RouterInfoKeystore) ConstructRouterInfo(addresses []*router_address.RouterAddress) (*router_info.RouterInfo, error)
|
||||
```
|
||||
|
||||
#### func (*RouterInfoKeystore) GetKeys
|
||||
|
||||
```go
|
||||
func (ks *RouterInfoKeystore) GetKeys() (crypto.PublicKey, crypto.PrivateKey, error)
|
||||
```
|
||||
|
||||
#### func (*RouterInfoKeystore) KeyID
|
||||
|
||||
```go
|
||||
func (ks *RouterInfoKeystore) KeyID() string
|
||||
```
|
||||
|
||||
#### func (*RouterInfoKeystore) StoreKeys
|
||||
|
||||
```go
|
||||
func (ks *RouterInfoKeystore) StoreKeys() error
|
||||
```
|
||||
|
||||
|
||||
|
||||
keys
|
||||
|
||||
github.com/go-i2p/go-i2p/lib/keys
|
375
lib/keys/keys.svg
Normal file
@ -0,0 +1,375 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||
-->
|
||||
<!-- Title: gocallvis Pages: 1 -->
|
||||
<svg width="699pt" height="783pt"
|
||||
viewBox="0.00 0.00 698.59 783.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 783)">
|
||||
<title>gocallvis</title>
|
||||
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-783 698.5894,-783 698.5894,0 0,0"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_focus</title>
|
||||
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-775 690.5894,-775 690.5894,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="349.2947" y="-754.8" font-family="Arial" font-size="18.00" fill="#000000">keys</text>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>cluster_github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate</title>
|
||||
<g id="a_clust5"><a xlink:title="type: github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M535.0977,-451C535.0977,-451 634.2689,-451 634.2689,-451 640.2689,-451 646.2689,-457 646.2689,-463 646.2689,-463 646.2689,-578 646.2689,-578 646.2689,-584 640.2689,-590 634.2689,-590 634.2689,-590 535.0977,-590 535.0977,-590 529.0977,-590 523.0977,-584 523.0977,-578 523.0977,-578 523.0977,-463 523.0977,-463 523.0977,-457 529.0977,-451 535.0977,-451"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-459.5" font-family="Arial" font-size="15.00" fill="#222222">(KeyCertificate)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/util/time/sntp.RouterTimestamper</title>
|
||||
<g id="a_clust4"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/util/time/sntp.RouterTimestamper">
|
||||
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M515.4217,-365C515.4217,-365 654.9449,-365 654.9449,-365 660.9449,-365 666.9449,-371 666.9449,-377 666.9449,-377 666.9449,-431 666.9449,-431 666.9449,-437 660.9449,-443 654.9449,-443 654.9449,-443 515.4217,-443 515.4217,-443 509.4217,-443 503.4217,-437 503.4217,-431 503.4217,-431 503.4217,-377 503.4217,-377 503.4217,-371 509.4217,-365 515.4217,-365"/>
|
||||
<text text-anchor="middle" x="585.1833" y="-373.5" font-family="Arial" font-size="15.00" fill="#222222">(*RouterTimestamper)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore</title>
|
||||
<g id="a_clust3"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore">
|
||||
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M266.6495,-598C266.6495,-598 617.1721,-598 617.1721,-598 623.1721,-598 629.1721,-604 629.1721,-610 629.1721,-610 629.1721,-725 629.1721,-725 629.1721,-731 623.1721,-737 617.1721,-737 617.1721,-737 266.6495,-737 266.6495,-737 260.6495,-737 254.6495,-731 254.6495,-725 254.6495,-725 254.6495,-610 254.6495,-610 254.6495,-604 260.6495,-598 266.6495,-598"/>
|
||||
<text text-anchor="middle" x="441.9108" y="-606.5" font-family="Arial" font-size="15.00" fill="#222222">(*RouterInfoKeystore)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl</title>
|
||||
<g id="a_clust2"><a xlink:title="type: *github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl">
|
||||
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M60.0344,-347C60.0344,-347 359.6243,-347 359.6243,-347 365.6243,-347 371.6243,-353 371.6243,-359 371.6243,-359 371.6243,-413 371.6243,-413 371.6243,-419 365.6243,-425 359.6243,-425 359.6243,-425 60.0344,-425 60.0344,-425 54.0344,-425 48.0344,-419 48.0344,-413 48.0344,-413 48.0344,-359 48.0344,-359 48.0344,-353 54.0344,-347 60.0344,-347"/>
|
||||
<text text-anchor="middle" x="209.8294" y="-355.5" font-family="Arial" font-size="15.00" fill="#222222">(*KeyStoreImpl)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/keys.NewRouterInfoKeystore -->
|
||||
<g id="node1" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/keys.NewRouterInfoKeystore</title>
|
||||
<g id="a_node1"><a xlink:title="github.com/go-i2p/go-i2p/lib/keys.NewRouterInfoKeystore | defined in routerinfo_keystore.go:36 at routerinfo_keystore.go:61: calling [github.com/go-i2p/go-i2p/lib/util/time/sntp.NewRouterTimestamper] at routerinfo_keystore.go:46: calling [github.com/go-i2p/go-i2p/lib/keys.generateNewKey] at routerinfo_keystore.go:55: calling [github.com/go-i2p/go-i2p/lib/keys.loadExistingKey]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M166.575,-113C166.575,-113 27.808,-113 27.808,-113 21.808,-113 15.808,-107 15.808,-101 15.808,-101 15.808,-89 15.808,-89 15.808,-83 21.808,-77 27.808,-77 27.808,-77 166.575,-77 166.575,-77 172.575,-77 178.575,-83 178.575,-89 178.575,-89 178.575,-101 178.575,-101 178.575,-107 172.575,-113 166.575,-113"/>
|
||||
<text text-anchor="middle" x="97.1915" y="-90.8" font-family="Verdana" font-size="14.00" fill="#000000">NewRouterInfoKeystore</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/keys.generateNewKey -->
|
||||
<g id="node2" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/keys.generateNewKey</title>
|
||||
<g id="a_node2"><a xlink:title="github.com/go-i2p/go-i2p/lib/keys.generateNewKey | defined in routerinfo_keystore.go:70">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M381.2388,-174C381.2388,-174 283.9214,-174 283.9214,-174 277.9214,-174 271.9214,-168 271.9214,-162 271.9214,-162 271.9214,-150 271.9214,-150 271.9214,-144 277.9214,-138 283.9214,-138 283.9214,-138 381.2388,-138 381.2388,-138 387.2388,-138 393.2388,-144 393.2388,-150 393.2388,-150 393.2388,-162 393.2388,-162 393.2388,-168 387.2388,-174 381.2388,-174"/>
|
||||
<text text-anchor="middle" x="332.5801" y="-151.8" font-family="Verdana" font-size="14.00" fill="#000000">generateNewKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/keys.NewRouterInfoKeystore->github.com/go-i2p/go-i2p/lib/keys.generateNewKey -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/keys.NewRouterInfoKeystore->github.com/go-i2p/go-i2p/lib/keys.generateNewKey</title>
|
||||
<g id="a_edge14"><a xlink:title="at routerinfo_keystore.go:46: calling [github.com/go-i2p/go-i2p/lib/keys.generateNewKey]">
|
||||
<path fill="none" stroke="#000000" d="M166.8604,-113.0544C196.8229,-120.8191 231.7977,-129.8826 261.8743,-137.6769"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="261.3138,-141.1472 271.872,-140.2678 263.0698,-134.371 261.3138,-141.1472"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/util/time/sntp.NewRouterTimestamper -->
|
||||
<g id="node3" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/util/time/sntp.NewRouterTimestamper</title>
|
||||
<g id="a_node3"><a xlink:title="github.com/go-i2p/go-i2p/lib/util/time/sntp.NewRouterTimestamper | defined in router_timestamper.go:55">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M401.9748,-52C401.9748,-52 263.1854,-52 263.1854,-52 257.1854,-52 251.1854,-46 251.1854,-40 251.1854,-40 251.1854,-28 251.1854,-28 251.1854,-22 257.1854,-16 263.1854,-16 263.1854,-16 401.9748,-16 401.9748,-16 407.9748,-16 413.9748,-22 413.9748,-28 413.9748,-28 413.9748,-40 413.9748,-40 413.9748,-46 407.9748,-52 401.9748,-52"/>
|
||||
<text text-anchor="middle" x="332.5801" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">sntp</text>
|
||||
<text text-anchor="middle" x="332.5801" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">NewRouterTimestamper</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/keys.NewRouterInfoKeystore->github.com/go-i2p/go-i2p/lib/util/time/sntp.NewRouterTimestamper -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/keys.NewRouterInfoKeystore->github.com/go-i2p/go-i2p/lib/util/time/sntp.NewRouterTimestamper</title>
|
||||
<g id="a_edge12"><a xlink:title="at routerinfo_keystore.go:61: calling [github.com/go-i2p/go-i2p/lib/util/time/sntp.NewRouterTimestamper]">
|
||||
<path fill="none" stroke="#8b4513" d="M166.8604,-76.9456C194.0247,-69.9061 225.3088,-61.7989 253.3276,-54.538"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="254.2877,-57.9048 263.0899,-52.0081 252.5317,-51.1287 254.2877,-57.9048"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/keys.loadExistingKey -->
|
||||
<g id="node4" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/keys.loadExistingKey</title>
|
||||
<g id="a_node4"><a xlink:title="github.com/go-i2p/go-i2p/lib/keys.loadExistingKey | defined in routerinfo_keystore.go:81 at routerinfo_keystore.go:84: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M379.6755,-113C379.6755,-113 285.4847,-113 285.4847,-113 279.4847,-113 273.4847,-107 273.4847,-101 273.4847,-101 273.4847,-89 273.4847,-89 273.4847,-83 279.4847,-77 285.4847,-77 285.4847,-77 379.6755,-77 379.6755,-77 385.6755,-77 391.6755,-83 391.6755,-89 391.6755,-89 391.6755,-101 391.6755,-101 391.6755,-107 385.6755,-113 379.6755,-113"/>
|
||||
<text text-anchor="middle" x="332.5801" y="-90.8" font-family="Verdana" font-size="14.00" fill="#000000">loadExistingKey</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/keys.NewRouterInfoKeystore->github.com/go-i2p/go-i2p/lib/keys.loadExistingKey -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/keys.NewRouterInfoKeystore->github.com/go-i2p/go-i2p/lib/keys.loadExistingKey</title>
|
||||
<g id="a_edge16"><a xlink:title="at routerinfo_keystore.go:55: calling [github.com/go-i2p/go-i2p/lib/keys.loadExistingKey]">
|
||||
<path fill="none" stroke="#000000" d="M178.5285,-95C206.0973,-95 236.6175,-95 263.1708,-95"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="263.5193,-98.5001 273.5192,-95 263.5192,-91.5001 263.5193,-98.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/samber/oops.Errorf -->
|
||||
<g id="node5" class="node">
|
||||
<title>github.com/samber/oops.Errorf</title>
|
||||
<g id="a_node5"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M601.8786,-52C601.8786,-52 567.488,-52 567.488,-52 561.488,-52 555.488,-46 555.488,-40 555.488,-40 555.488,-28 555.488,-28 555.488,-22 561.488,-16 567.488,-16 567.488,-16 601.8786,-16 601.8786,-16 607.8786,-16 613.8786,-22 613.8786,-28 613.8786,-28 613.8786,-40 613.8786,-40 613.8786,-46 607.8786,-52 601.8786,-52"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
|
||||
<text text-anchor="middle" x="584.6833" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/keys.loadExistingKey->github.com/samber/oops.Errorf -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>github.com/go-i2p/go-i2p/lib/keys.loadExistingKey->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge15"><a xlink:title="at routerinfo_keystore.go:84: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M391.6871,-80.6982C439.0475,-69.2387 504.1698,-53.4814 545.3431,-43.5189"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="546.3731,-46.8708 555.2695,-41.1171 544.7268,-40.0671 546.3731,-46.8708"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt -->
|
||||
<g id="node6" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt</title>
|
||||
<g id="a_node6"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt | defined in integer.go:68">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M640.6371,-113C640.6371,-113 528.7295,-113 528.7295,-113 522.7295,-113 516.7295,-107 516.7295,-101 516.7295,-101 516.7295,-89 516.7295,-89 516.7295,-83 522.7295,-77 528.7295,-77 528.7295,-77 640.6371,-77 640.6371,-77 646.6371,-77 652.6371,-83 652.6371,-89 652.6371,-89 652.6371,-101 652.6371,-101 652.6371,-107 646.6371,-113 640.6371,-113"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
|
||||
<text text-anchor="middle" x="584.6833" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">NewIntegerFromInt</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType -->
|
||||
<g id="node7" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType</title>
|
||||
<g id="a_node7"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType | defined in certificate.go:252">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M655.9529,-174C655.9529,-174 513.4137,-174 513.4137,-174 507.4137,-174 501.4137,-168 501.4137,-162 501.4137,-162 501.4137,-150 501.4137,-150 501.4137,-144 507.4137,-138 513.4137,-138 513.4137,-138 655.9529,-138 655.9529,-138 661.9529,-138 667.9529,-144 667.9529,-150 667.9529,-150 667.9529,-162 667.9529,-162 667.9529,-168 661.9529,-174 655.9529,-174"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-160.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
|
||||
<text text-anchor="middle" x="584.6833" y="-143.4" font-family="Verdana" font-size="14.00" fill="#000000">NewCertificateWithType</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate -->
|
||||
<g id="node8" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate</title>
|
||||
<g id="a_node8"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate | defined in key_certificate.go:395">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M670.4956,-235C670.4956,-235 498.871,-235 498.871,-235 492.871,-235 486.871,-229 486.871,-223 486.871,-223 486.871,-211 486.871,-211 486.871,-205 492.871,-199 498.871,-199 498.871,-199 670.4956,-199 670.4956,-199 676.4956,-199 682.4956,-205 682.4956,-211 682.4956,-211 682.4956,-223 682.4956,-223 682.4956,-229 676.4956,-235 670.4956,-235"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-221.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="584.6833" y="-204.4" font-family="Verdana" font-size="14.00" fill="#000000">KeyCertificateFromCertificate</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity -->
|
||||
<g id="node9" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity</title>
|
||||
<g id="a_node9"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity | defined in router_identity.go:55">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M638.7605,-296C638.7605,-296 530.6061,-296 530.6061,-296 524.6061,-296 518.6061,-290 518.6061,-284 518.6061,-284 518.6061,-272 518.6061,-272 518.6061,-266 524.6061,-260 530.6061,-260 530.6061,-260 638.7605,-260 638.7605,-260 644.7605,-260 650.7605,-266 650.7605,-272 650.7605,-272 650.7605,-284 650.7605,-284 650.7605,-290 644.7605,-296 638.7605,-296"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-282.2" font-family="Verdana" font-size="14.00" fill="#000000">router_identity</text>
|
||||
<text text-anchor="middle" x="584.6833" y="-265.4" font-family="Verdana" font-size="14.00" fill="#000000">NewRouterIdentity</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- github.com/go-i2p/go-i2p/lib/common/router_info.NewRouterInfo -->
|
||||
<g id="node10" class="node">
|
||||
<title>github.com/go-i2p/go-i2p/lib/common/router_info.NewRouterInfo</title>
|
||||
<g id="a_node10"><a xlink:title="github.com/go-i2p/go-i2p/lib/common/router_info.NewRouterInfo | defined in router_info.go:370">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M628.5348,-357C628.5348,-357 540.8318,-357 540.8318,-357 534.8318,-357 528.8318,-351 528.8318,-345 528.8318,-345 528.8318,-333 528.8318,-333 528.8318,-327 534.8318,-321 540.8318,-321 540.8318,-321 628.5348,-321 628.5348,-321 634.5348,-321 640.5348,-327 640.5348,-333 640.5348,-333 640.5348,-345 640.5348,-345 640.5348,-351 634.5348,-357 628.5348,-357"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-343.2" font-family="Verdana" font-size="14.00" fill="#000000">router_info</text>
|
||||
<text text-anchor="middle" x="584.6833" y="-326.4" font-family="Verdana" font-size="14.00" fill="#000000">NewRouterInfo</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).StoreKeys -->
|
||||
<g id="node11" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).StoreKeys</title>
|
||||
<g id="a_node11"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).StoreKeys | defined in types.go:56 at types.go:65: calling [(*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).KeyID]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M126.5063,-417C126.5063,-417 67.8767,-417 67.8767,-417 61.8767,-417 55.8767,-411 55.8767,-405 55.8767,-405 55.8767,-393 55.8767,-393 55.8767,-387 61.8767,-381 67.8767,-381 67.8767,-381 126.5063,-381 126.5063,-381 132.5063,-381 138.5063,-387 138.5063,-393 138.5063,-393 138.5063,-405 138.5063,-405 138.5063,-411 132.5063,-417 126.5063,-417"/>
|
||||
<text text-anchor="middle" x="97.1915" y="-394.8" font-family="Verdana" font-size="14.00" fill="#000000">StoreKeys</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).KeyID -->
|
||||
<g id="node12" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).KeyID</title>
|
||||
<g id="a_node12"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).KeyID | defined in types.go:33">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M351.6686,-417C351.6686,-417 313.4916,-417 313.4916,-417 307.4916,-417 301.4916,-411 301.4916,-405 301.4916,-405 301.4916,-393 301.4916,-393 301.4916,-387 307.4916,-381 313.4916,-381 313.4916,-381 351.6686,-381 351.6686,-381 357.6686,-381 363.6686,-387 363.6686,-393 363.6686,-393 363.6686,-405 363.6686,-405 363.6686,-411 357.6686,-417 351.6686,-417"/>
|
||||
<text text-anchor="middle" x="332.5801" y="-394.8" font-family="Verdana" font-size="14.00" fill="#000000">KeyID</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).StoreKeys->(*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).KeyID -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).StoreKeys->(*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).KeyID</title>
|
||||
<g id="a_edge11"><a xlink:title="at types.go:65: calling [(*github.com/go-i2p/go-i2p/lib/keys.KeyStoreImpl).KeyID]">
|
||||
<path fill="none" stroke="#000000" d="M138.4624,-399C181.461,-399 248.436,-399 291.4006,-399"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="291.5116,-402.5001 301.5116,-399 291.5115,-395.5001 291.5116,-402.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).StoreKeys -->
|
||||
<g id="node13" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).StoreKeys</title>
|
||||
<g id="a_node13"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).StoreKeys | defined in routerinfo_keystore.go:99 at routerinfo_keystore.go:107: calling [(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).KeyID]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M361.8949,-729C361.8949,-729 303.2653,-729 303.2653,-729 297.2653,-729 291.2653,-723 291.2653,-717 291.2653,-717 291.2653,-705 291.2653,-705 291.2653,-699 297.2653,-693 303.2653,-693 303.2653,-693 361.8949,-693 361.8949,-693 367.8949,-693 373.8949,-699 373.8949,-705 373.8949,-705 373.8949,-717 373.8949,-717 373.8949,-723 367.8949,-729 361.8949,-729"/>
|
||||
<text text-anchor="middle" x="332.5801" y="-706.8" font-family="Verdana" font-size="14.00" fill="#000000">StoreKeys</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).KeyID -->
|
||||
<g id="node14" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).KeyID</title>
|
||||
<g id="a_node14"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).KeyID | defined in routerinfo_keystore.go:111">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M603.7718,-729C603.7718,-729 565.5948,-729 565.5948,-729 559.5948,-729 553.5948,-723 553.5948,-717 553.5948,-717 553.5948,-705 553.5948,-705 553.5948,-699 559.5948,-693 565.5948,-693 565.5948,-693 603.7718,-693 603.7718,-693 609.7718,-693 615.7718,-699 615.7718,-705 615.7718,-705 615.7718,-717 615.7718,-717 615.7718,-723 609.7718,-729 603.7718,-729"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-706.8" font-family="Verdana" font-size="14.00" fill="#000000">KeyID</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).StoreKeys->(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).KeyID -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).StoreKeys->(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).KeyID</title>
|
||||
<g id="a_edge6"><a xlink:title="at routerinfo_keystore.go:107: calling [(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).KeyID]">
|
||||
<path fill="none" stroke="#000000" d="M373.9275,-711C420.6798,-711 496.3667,-711 543.1822,-711"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="543.2839,-714.5001 553.2838,-711 543.2838,-707.5001 543.2839,-714.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo -->
|
||||
<g id="node15" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo</title>
|
||||
<g id="a_node15"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo | defined in routerinfo_keystore.go:125 at routerinfo_keystore.go:166: calling [github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity] at routerinfo_keystore.go:177: calling [(*github.com/go-i2p/go-i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime] at routerinfo_keystore.go:127: calling [(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).GetKeys] at routerinfo_keystore.go:129: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:136: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:140: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:147: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:153: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:162: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:173: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:194: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:134: calling [github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt] at routerinfo_keystore.go:138: calling [github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt] at routerinfo_keystore.go:151: calling [github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate] at routerinfo_keystore.go:156: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize] at routerinfo_keystore.go:157: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize] at routerinfo_keystore.go:185: calling [github.com/go-i2p/go-i2p/lib/common/router_info.NewRouterInfo] at routerinfo_keystore.go:145: calling [github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType]">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M390.4414,-668C390.4414,-668 274.7188,-668 274.7188,-668 268.7188,-668 262.7188,-662 262.7188,-656 262.7188,-656 262.7188,-644 262.7188,-644 262.7188,-638 268.7188,-632 274.7188,-632 274.7188,-632 390.4414,-632 390.4414,-632 396.4414,-632 402.4414,-638 402.4414,-644 402.4414,-644 402.4414,-656 402.4414,-656 402.4414,-662 396.4414,-668 390.4414,-668"/>
|
||||
<text text-anchor="middle" x="332.5801" y="-645.8" font-family="Verdana" font-size="14.00" fill="#000000">ConstructRouterInfo</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/samber/oops.Errorf -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/samber/oops.Errorf</title>
|
||||
<g id="a_edge4"><a xlink:title="at routerinfo_keystore.go:129: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:136: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:140: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:147: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:153: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:162: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:173: calling [github.com/samber/oops.Errorf] at routerinfo_keystore.go:194: calling [github.com/samber/oops.Errorf]">
|
||||
<path fill="none" stroke="#8b4513" d="M340.8224,-631.974C357.3427,-595.0726 394.565,-507.912 413.7772,-431 453.9757,-270.074 366.7231,-179.4557 486.7772,-65 502.6013,-49.9138 525.7299,-42.1675 545.5344,-38.1909"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="546.2873,-41.6123 555.5316,-36.4361 545.077,-34.7177 546.2873,-41.6123"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt</title>
|
||||
<g id="a_edge5"><a xlink:title="at routerinfo_keystore.go:134: calling [github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt] at routerinfo_keystore.go:138: calling [github.com/go-i2p/go-i2p/lib/common/data.NewIntegerFromInt]">
|
||||
<path fill="none" stroke="#8b4513" d="M340.5424,-631.9008C356.5529,-594.8661 392.894,-507.4752 413.7772,-431 450.4946,-296.5389 386.6461,-222.9624 486.7772,-126 492.8071,-120.1609 499.9302,-115.4211 507.5407,-111.5736"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="508.9888,-114.7601 516.6622,-107.4546 506.1079,-108.3804 508.9888,-114.7601"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType</title>
|
||||
<g id="a_edge13"><a xlink:title="at routerinfo_keystore.go:145: calling [github.com/go-i2p/go-i2p/lib/common/certificate.NewCertificateWithType]">
|
||||
<path fill="none" stroke="#8b4513" d="M339.7144,-631.9698C354.36,-594.704 388.5591,-506.371 413.7772,-431 449.6932,-323.6553 407.3775,-267.6754 486.7772,-187 489.4348,-184.2997 492.3258,-181.8341 495.3931,-179.5828"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="497.3754,-182.4692 503.8852,-174.1102 493.5835,-176.5852 497.3754,-182.4692"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate</title>
|
||||
<g id="a_edge7"><a xlink:title="at routerinfo_keystore.go:151: calling [github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificateFromCertificate]">
|
||||
<path fill="none" stroke="#8b4513" d="M339.3248,-631.7781C368.0663,-554.2094 479.2026,-255.1359 486.7772,-248 489.7579,-245.1919 492.992,-242.6381 496.4098,-240.3157"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="498.4764,-243.1572 505.2447,-235.006 494.8705,-237.1573 498.4764,-243.1572"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity</title>
|
||||
<g id="a_edge1"><a xlink:title="at routerinfo_keystore.go:166: calling [github.com/go-i2p/go-i2p/lib/common/router_identity.NewRouterIdentity]">
|
||||
<path fill="none" stroke="#8b4513" d="M338.5426,-631.9132C359.8653,-568.2129 433.877,-355.5958 486.7772,-309 493.3874,-303.1776 501.0927,-298.4479 509.2244,-294.6061"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="510.7213,-297.7728 518.5508,-290.6348 507.9789,-291.3324 510.7213,-297.7728"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/router_info.NewRouterInfo -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->github.com/go-i2p/go-i2p/lib/common/router_info.NewRouterInfo</title>
|
||||
<g id="a_edge10"><a xlink:title="at routerinfo_keystore.go:185: calling [github.com/go-i2p/go-i2p/lib/common/router_info.NewRouterInfo]">
|
||||
<path fill="none" stroke="#8b4513" d="M336.7024,-631.6348C349.2815,-580.0653 392.2195,-433.0101 486.7772,-361 496.1976,-353.8259 507.5173,-348.9105 519.0637,-345.5601"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="519.9452,-348.9474 528.7793,-343.0986 518.226,-342.1618 519.9452,-348.9474"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).GetKeys -->
|
||||
<g id="node16" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).GetKeys</title>
|
||||
<g id="a_node16"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).GetKeys | defined in routerinfo_keystore.go:91">
|
||||
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M609.1609,-668C609.1609,-668 560.2057,-668 560.2057,-668 554.2057,-668 548.2057,-662 548.2057,-656 548.2057,-656 548.2057,-644 548.2057,-644 548.2057,-638 554.2057,-632 560.2057,-632 560.2057,-632 609.1609,-632 609.1609,-632 615.1609,-632 621.1609,-638 621.1609,-644 621.1609,-644 621.1609,-656 621.1609,-656 621.1609,-662 615.1609,-668 609.1609,-668"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-645.8" font-family="Verdana" font-size="14.00" fill="#000000">GetKeys</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).GetKeys -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).GetKeys</title>
|
||||
<g id="a_edge3"><a xlink:title="at routerinfo_keystore.go:127: calling [(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).GetKeys]">
|
||||
<path fill="none" stroke="#000000" d="M402.4701,-650C445.626,-650 499.8217,-650 537.8465,-650"/>
|
||||
<polygon fill="#000000" stroke="#000000" points="538.1201,-653.5001 548.1201,-650 538.12,-646.5001 538.1201,-653.5001"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime -->
|
||||
<g id="node17" class="node">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime</title>
|
||||
<g id="a_node17"><a xlink:title="(*github.com/go-i2p/go-i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime | defined in router_timestamper.go:397">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M630.7075,-435C630.7075,-435 538.6591,-435 538.6591,-435 532.6591,-435 526.6591,-429 526.6591,-423 526.6591,-423 526.6591,-411 526.6591,-411 526.6591,-405 532.6591,-399 538.6591,-399 538.6591,-399 630.7075,-399 630.7075,-399 636.7075,-399 642.7075,-405 642.7075,-411 642.7075,-411 642.7075,-423 642.7075,-423 642.7075,-429 636.7075,-435 630.7075,-435"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-421.2" font-family="Verdana" font-size="14.00" fill="#000000">sntp</text>
|
||||
<text text-anchor="middle" x="584.6833" y="-404.4" font-family="Verdana" font-size="14.00" fill="#000000">GetCurrentTime</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->(*github.com/go-i2p/go-i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->(*github.com/go-i2p/go-i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime</title>
|
||||
<g id="a_edge2"><a xlink:title="at routerinfo_keystore.go:177: calling [(*github.com/go-i2p/go-i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime]">
|
||||
<path fill="none" stroke="#8b4513" d="M341.0985,-631.8057C360.8147,-591.713 413.5611,-495.3295 486.7772,-445 495.8122,-438.7893 506.2153,-433.9444 516.7935,-430.1682"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="518.1029,-433.4226 526.5231,-426.9922 515.9306,-426.7682 518.1029,-433.4226"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
|
||||
<g id="node18" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
|
||||
<g id="a_node18"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize | defined in key_certificate.go:336">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M626.3546,-521C626.3546,-521 543.012,-521 543.012,-521 537.012,-521 531.012,-515 531.012,-509 531.012,-509 531.012,-497 531.012,-497 531.012,-491 537.012,-485 543.012,-485 543.012,-485 626.3546,-485 626.3546,-485 632.3546,-485 638.3546,-491 638.3546,-497 638.3546,-497 638.3546,-509 638.3546,-509 638.3546,-515 632.3546,-521 626.3546,-521"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-507.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="584.6833" y="-490.4" font-family="Verdana" font-size="14.00" fill="#000000">CryptoSize</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
|
||||
<g id="a_edge8"><a xlink:title="at routerinfo_keystore.go:156: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
|
||||
<path fill="none" stroke="#8b4513" d="M352.0391,-631.8627C379.9286,-606.7254 433.7711,-561.3133 486.7772,-534 497.5495,-528.4492 509.5032,-523.6606 521.2517,-519.6209"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="522.6344,-522.8507 531.0416,-516.4033 520.4487,-516.2006 522.6344,-522.8507"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
|
||||
<g id="node19" class="node">
|
||||
<title>(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
|
||||
<g id="a_node19"><a xlink:title="(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize | defined in key_certificate.go:308">
|
||||
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M626.3546,-582C626.3546,-582 543.012,-582 543.012,-582 537.012,-582 531.012,-576 531.012,-570 531.012,-570 531.012,-558 531.012,-558 531.012,-552 537.012,-546 543.012,-546 543.012,-546 626.3546,-546 626.3546,-546 632.3546,-546 638.3546,-552 638.3546,-558 638.3546,-558 638.3546,-570 638.3546,-570 638.3546,-576 632.3546,-582 626.3546,-582"/>
|
||||
<text text-anchor="middle" x="584.6833" y="-568.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
|
||||
<text text-anchor="middle" x="584.6833" y="-551.4" font-family="Verdana" font-size="14.00" fill="#000000">SignatureSize</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- (*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>(*github.com/go-i2p/go-i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo->(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
|
||||
<g id="a_edge9"><a xlink:title="at routerinfo_keystore.go:157: calling [(github.com/go-i2p/go-i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]">
|
||||
<path fill="none" stroke="#8b4513" d="M377.778,-631.8922C408.3304,-619.9262 449.7078,-604.2499 486.7772,-592 497.9243,-588.3163 509.8762,-584.6597 521.4653,-581.2639"/>
|
||||
<polygon fill="#8b4513" stroke="#8b4513" points="522.4569,-584.6206 531.0892,-578.4779 520.5103,-577.8967 522.4569,-584.6206"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 37 KiB |