mirror of
https://github.com/status-im/status-go.git
synced 2025-01-09 22:26:30 +00:00
511d6bfc54
* feat(share-links): Add protobuf and encode/decode url data methods * feat(new-links-format): Adds generators for new links format * feat: add parsing for new links format * feat: add messenger-level pubkey serialization and tests * feat: fix and test CreateCommunityURLWithChatKey * feat: impl and test parseCommunityURLWithChatKey * feat: fix and test CreateCommunityURLWithData * feat: impl and test parseCommunityURLWithData (not working) * feat: UrlDataResponse as response share urls api * feat: impl& tested ShareCommunityChannelURLWithChatKey * feat: impl & tested ParseCommunityChannelURLWithChatKey * fix: bring urls to new format * feat: add regexp for community channel urls * feat: impl & test contact urls with chatKey, Ens and data * fix: encodeDataURL/encodeDataURL patch from Samyoul * fix: fix unmarshalling protobufs * fix: fix minor issues, temporary comment TestParseUserURLWithENS * fix: allow url to contain extra `#` in the signature * fix: check signatures with SigToPub * chore: lint fixes * fix: encode the signature * feat: Check provided channelID is Uuid * fix(share-community-url): Remove if community encrypted scope * fix: review fixes * fix: use proto.Unmarshal instead of json.Marshal * feat(share-urls): Adds TagsIndices to community data * feat: support tag indices to community url data --------- Co-authored-by: Boris Melnik <borismelnik@status.im>
78 lines
1.9 KiB
Go
78 lines
1.9 KiB
Go
package brotli
|
|
|
|
/* Copyright 2016 Google Inc. All Rights Reserved.
|
|
|
|
Distributed under MIT license.
|
|
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
/* Specification: 7.3. Encoding of the context map */
|
|
const contextMapMaxRle = 16
|
|
|
|
/* Specification: 2. Compressed representation overview */
|
|
const maxNumberOfBlockTypes = 256
|
|
|
|
/* Specification: 3.3. Alphabet sizes: insert-and-copy length */
|
|
const numLiteralSymbols = 256
|
|
|
|
const numCommandSymbols = 704
|
|
|
|
const numBlockLenSymbols = 26
|
|
|
|
const maxContextMapSymbols = (maxNumberOfBlockTypes + contextMapMaxRle)
|
|
|
|
const maxBlockTypeSymbols = (maxNumberOfBlockTypes + 2)
|
|
|
|
/* Specification: 3.5. Complex prefix codes */
|
|
const repeatPreviousCodeLength = 16
|
|
|
|
const repeatZeroCodeLength = 17
|
|
|
|
const codeLengthCodes = (repeatZeroCodeLength + 1)
|
|
|
|
/* "code length of 8 is repeated" */
|
|
const initialRepeatedCodeLength = 8
|
|
|
|
/* "Large Window Brotli" */
|
|
const largeMaxDistanceBits = 62
|
|
|
|
const largeMinWbits = 10
|
|
|
|
const largeMaxWbits = 30
|
|
|
|
/* Specification: 4. Encoding of distances */
|
|
const numDistanceShortCodes = 16
|
|
|
|
const maxNpostfix = 3
|
|
|
|
const maxNdirect = 120
|
|
|
|
const maxDistanceBits = 24
|
|
|
|
func distanceAlphabetSize(NPOSTFIX uint, NDIRECT uint, MAXNBITS uint) uint {
|
|
return numDistanceShortCodes + NDIRECT + uint(MAXNBITS<<(NPOSTFIX+1))
|
|
}
|
|
|
|
/* numDistanceSymbols == 1128 */
|
|
const numDistanceSymbols = 1128
|
|
|
|
const maxDistance = 0x3FFFFFC
|
|
|
|
const maxAllowedDistance = 0x7FFFFFFC
|
|
|
|
/* 7.1. Context modes and context ID lookup for literals */
|
|
/* "context IDs for literals are in the range of 0..63" */
|
|
const literalContextBits = 6
|
|
|
|
/* 7.2. Context ID for distances */
|
|
const distanceContextBits = 2
|
|
|
|
/* 9.1. Format of the Stream Header */
|
|
/* Number of slack bytes for window size. Don't confuse
|
|
with BROTLI_NUM_DISTANCE_SHORT_CODES. */
|
|
const windowGap = 16
|
|
|
|
func maxBackwardLimit(W uint) uint {
|
|
return (uint(1) << W) - windowGap
|
|
}
|