Skip to content

Commit

Permalink
Merge pull request #4 from moul/dev/moul/recursive
Browse files Browse the repository at this point in the history
feat: support recursive base64
  • Loading branch information
moul committed Aug 12, 2019
2 parents 6c3d715 + 7d44c55 commit 550e9d8
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 30 deletions.
49 changes: 26 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,29 +66,32 @@ GLOBAL OPTIONS:

## Decoders

| Encoding | Status | Recursive |
|---------------|--------------------|--------------|
| aes | :red_circle: | :red_circle: |
| ascii85 | :red_circle: | :red_circle: |
| asn1 | :red_circle: | :red_circle: |
| base32 | :red_circle: | :red_circle: |
| base64 | :white_check_mark: | :red_circle: |
| cipher | :red_circle: | :red_circle: |
| csv | :red_circle: | :red_circle: |
| des | :red_circle: | :red_circle: |
| dsa | :red_circle: | :red_circle: |
| ecdsa | :red_circle: | :red_circle: |
| elliptic | :red_circle: | :red_circle: |
| encrypted jwt | :red_circle: | :red_circle: |
| gob | :red_circle: | :red_circle: |
| json | :red_circle: | :red_circle: |
| pem | :white_check_mark: | :red_circle: |
| rsa | :red_circle: | :red_circle: |
| signed jwt | :white_check_mark: | :red_circle: |
| ssh | :white_check_mark: | :red_circle: |
| tls | :red_circle: | :red_circle: |
| x509 | :white_check_mark: | :red_circle: |
| xml | :red_circle: | :red_circle: |
| Encoding | Status | Recursive |
|-------------------|--------------------|--------------------|
| aes | :red_circle: | :red_circle: |
| ascii85 | :red_circle: | :red_circle: |
| asn1 | :red_circle: | :red_circle: |
| base32 | :red_circle: | :red_circle: |
| base64 | :white_check_mark: | :white_check_mark: |
| cipher | :red_circle: | :red_circle: |
| csv | :red_circle: | :red_circle: |
| des | :red_circle: | :red_circle: |
| dsa | :red_circle: | :red_circle: |
| ecdsa | :red_circle: | :red_circle: |
| elliptic | :red_circle: | :red_circle: |
| encodings (utf-8) | :red_circle: | :red_circle: |
| encrypted jwt | :red_circle: | :red_circle: |
| gob | :red_circle: | :red_circle: |
| gzip,lzw,... | :red_circle: | :red_circle: |
| json | :red_circle: | :red_circle: |
| pem | :white_check_mark: | :white_check_mark: |
| rsa | :red_circle: | :red_circle: |
| signed jwt | :white_check_mark: | :red_circle: |
| ssh | :white_check_mark: | :red_circle: |
| tls | :red_circle: | :red_circle: |
| url escaped | :red_circle: | :red_circle: |
| x509 | :white_check_mark: | :red_circle: |
| xml | :red_circle: | :red_circle: |


## Install
Expand Down
13 changes: 9 additions & 4 deletions cryptoguess/guess_base64.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,15 @@ type BASE64Block struct{ *baseExperiment }

func runBASE64Block(exp Experiment) []Result {
results := []Result{}
result := &baseResult{exp: exp}
result.data, result.err = base64.StdEncoding.DecodeString(string(exp.Input()))
results = append(results, result)
// FIXME: recursively call other parsers with prefix=base64-encoded (like multiaddr)
data, err := base64.StdEncoding.DecodeString(string(exp.Input()))
if err != nil {
result := &baseResult{exp: exp, err: err}
results = append(results, result)
} else {
result := &baseResult{exp: exp, data: data}
results = append(results, recursiveResults(result, data)...)
results = append(results, result)
}
return results
}

Expand Down
1 change: 1 addition & 0 deletions cryptoguess/guess_jwt.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ func runJWTSignedToken(exp Experiment) []Result {
result.err = parsed.Token.UnsafeClaimsWithoutVerification(&parsed.Claims)
}
results = append(results, result)
// FIXME: recursively call cryptoguess
return results
}

Expand Down
4 changes: 1 addition & 3 deletions cryptoguess/guess_pem.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ func runPEMBlock(exp Experiment) []Result {
// FIXME: data.Type
// FIXME: data.Headers
result := &baseResult{exp: exp, rest: rest, data: data}
for _, childResult := range recursiveResults(result, data.Bytes) {
results = append(results, childResult)
}
results = append(results, recursiveResults(result, data.Bytes)...)
results = append(results, result)
}
return results
Expand Down

0 comments on commit 550e9d8

Please sign in to comment.