Skip to content

Commit

Permalink
refactor(2d-code): update json (un-)marshalling
Browse files Browse the repository at this point in the history
- use the exact same date format as GetText

- marshall sha256sum as base64

Signed-off-by: Universal Studio <[email protected]>
  • Loading branch information
TMUniversal committed Aug 6, 2024
1 parent a66c115 commit 2b9ebe1
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 0 deletions.
Binary file modified examples/lowercase.pdf
Binary file not shown.
Binary file modified examples/no_code.pdf
Binary file not shown.
Binary file modified examples/output.pdf
Binary file not shown.
42 changes: 42 additions & 0 deletions internal/container_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,48 @@ type PaperCrypt struct {
Data []byte `json:"d"`
}

func (p *PaperCrypt) MarshalJSON() ([]byte, error) {
type Alias PaperCrypt
return json.Marshal(&struct {
CreatedAt string `json:"ct"`
DataSHA256 string `json:"d_s256"`
*Alias
}{
CreatedAt: p.CreatedAt.Format(TimeStampFormatLong),
DataSHA256: base64.StdEncoding.EncodeToString(p.DataSHA256[:]),
Alias: (*Alias)(p),
})
}

func (p *PaperCrypt) UnmarshalJSON(data []byte) error {
type Alias PaperCrypt
aux := &struct {
CreatedAt string `json:"ct"`
DataSHA256 string `json:"d_s256"`
*Alias
}{
Alias: (*Alias)(p),
}

if err := json.Unmarshal(data, &aux); err != nil {
return err
}

createdAt, err := time.Parse(TimeStampFormatLong, aux.CreatedAt)
if err != nil {
return err
}
p.CreatedAt = createdAt

dataSHA256, err := BytesFromBase64(aux.DataSHA256)
if err != nil {
return err
}
copy(p.DataSHA256[:], dataSHA256)

return nil
}

// NewPaperCrypt creates a new paper crypt
func NewPaperCrypt(version string, data []byte, serialNumber string, purpose string, comment string, createdAt time.Time, format PaperCryptDataFormat) *PaperCrypt {
dataCRC24 := Crc24Checksum(data)
Expand Down

0 comments on commit 2b9ebe1

Please sign in to comment.