Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.31
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
local /
go /
src /
hash /
crc32 /
[ HOME SHELL ]
Name
Size
Permission
Action
crc32.go
7.67
KB
-rw-r--r--
crc32_amd64.go
6.78
KB
-rw-r--r--
crc32_amd64.s
5.4
KB
-rw-r--r--
crc32_arm64.go
1.18
KB
-rw-r--r--
crc32_arm64.s
1.46
KB
-rw-r--r--
crc32_generic.go
2.52
KB
-rw-r--r--
crc32_otherarch.go
671
B
-rw-r--r--
crc32_ppc64le.go
2.24
KB
-rw-r--r--
crc32_ppc64le.s
13.63
KB
-rw-r--r--
crc32_s390x.go
2.1
KB
-rw-r--r--
crc32_s390x.s
8.2
KB
-rw-r--r--
crc32_table_ppc64le.s
113.32
KB
-rw-r--r--
crc32_test.go
11.67
KB
-rw-r--r--
example_test.go
1
KB
-rw-r--r--
gen_const_ppc64le.go
4.49
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : gen_const_ppc64le.go
// Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build ignore // Generate the constant table associated with the poly used by the // vpmsumd crc32 algorithm. // // go run gen_const_ppc64le.go // // generates crc32_table_ppc64le.s // The following is derived from code written by Anton Blanchard // <anton@au.ibm.com> found at https://github.com/antonblanchard/crc32-vpmsum. // The original is dual licensed under GPL and Apache 2. As the copyright holder // for the work, IBM has contributed this new work under the golang license. // This code was written in Go based on the original C implementation. // This is a tool needed to generate the appropriate constants needed for // the vpmsum algorithm. It is included to generate new constant tables if // new polynomial values are included in the future. package main import ( "bytes" "fmt" "io/ioutil" ) var blocking = 32 * 1024 func reflect_bits(b uint64, nr uint) uint64 { var ref uint64 for bit := uint64(0); bit < uint64(nr); bit++ { if (b & uint64(1)) == 1 { ref |= (1 << (uint64(nr-1) - bit)) } b = (b >> 1) } return ref } func get_remainder(poly uint64, deg uint, n uint) uint64 { rem, _ := xnmodp(n, poly, deg) return rem } func get_quotient(poly uint64, bits, n uint) uint64 { _, div := xnmodp(n, poly, bits) return div } // xnmodp returns two values, p and div: // p is the representation of the binary polynomial x**n mod (x ** deg + "poly") // That is p is the binary representation of the modulus polynomial except for its highest-order term. // div is the binary representation of the polynomial x**n / (x ** deg + "poly") func xnmodp(n uint, poly uint64, deg uint) (uint64, uint64) { var mod, mask, high, div uint64 if n < deg { div = 0 return poly, div } mask = 1<<deg - 1 poly &= mask mod = poly div = 1 deg-- n-- for n > deg { high = (mod >> deg) & 1 div = (div << 1) | high mod <<= 1 if high != 0 { mod ^= poly } n-- } return mod & mask, div } func main() { w := new(bytes.Buffer) fmt.Fprintf(w, "// autogenerated: do not edit!\n") fmt.Fprintf(w, "// generated from crc32/gen_const_ppc64le.go\n") fmt.Fprintln(w) fmt.Fprintf(w, "#include \"textflag.h\"\n") // These are the polynomials supported in vector now. // If adding others, include the polynomial and a name // to identify it. genCrc32ConstTable(w, 0xedb88320, "IEEE") genCrc32ConstTable(w, 0x82f63b78, "Cast") genCrc32ConstTable(w, 0xeb31d82e, "Koop") b := w.Bytes() err := ioutil.WriteFile("crc32_table_ppc64le.s", b, 0666) if err != nil { fmt.Printf("can't write output: %s\n", err) } } func genCrc32ConstTable(w *bytes.Buffer, poly uint32, polyid string) { ref_poly := reflect_bits(uint64(poly), 32) fmt.Fprintf(w, "\n\t/* Reduce %d kbits to 1024 bits */\n", blocking*8) j := 0 for i := (blocking * 8) - 1024; i > 0; i -= 1024 { a := reflect_bits(get_remainder(ref_poly, 32, uint(i)), 32) << 1 b := reflect_bits(get_remainder(ref_poly, 32, uint(i+64)), 32) << 1 fmt.Fprintf(w, "\t/* x^%d mod p(x)%s, x^%d mod p(x)%s */\n", uint(i+64), "", uint(i), "") fmt.Fprintf(w, "DATA ·%sConst+%d(SB)/8,$0x%016x\n", polyid, j*8, b) fmt.Fprintf(w, "DATA ·%sConst+%d(SB)/8,$0x%016x\n", polyid, (j+1)*8, a) j += 2 fmt.Fprintf(w, "\n") } for i := (1024 * 2) - 128; i >= 0; i -= 128 { a := reflect_bits(get_remainder(ref_poly, 32, uint(i+32)), 32) b := reflect_bits(get_remainder(ref_poly, 32, uint(i+64)), 32) c := reflect_bits(get_remainder(ref_poly, 32, uint(i+96)), 32) d := reflect_bits(get_remainder(ref_poly, 32, uint(i+128)), 32) fmt.Fprintf(w, "\t/* x^%d mod p(x)%s, x^%d mod p(x)%s, x^%d mod p(x)%s, x^%d mod p(x)%s */\n", i+128, "", i+96, "", i+64, "", i+32, "") fmt.Fprintf(w, "DATA ·%sConst+%d(SB)/8,$0x%08x%08x\n", polyid, j*8, c, d) fmt.Fprintf(w, "DATA ·%sConst+%d(SB)/8,$0x%08x%08x\n", polyid, (j+1)*8, a, b) j += 2 fmt.Fprintf(w, "\n") } fmt.Fprintf(w, "GLOBL ·%sConst(SB),RODATA,$4336\n", polyid) fmt.Fprintf(w, "\n /* Barrett constant m - (4^32)/n */\n") fmt.Fprintf(w, "DATA ·%sBarConst(SB)/8,$0x%016x\n", polyid, reflect_bits(get_quotient(ref_poly, 32, 64), 33)) fmt.Fprintf(w, "DATA ·%sBarConst+8(SB)/8,$0x0000000000000000\n", polyid) fmt.Fprintf(w, "DATA ·%sBarConst+16(SB)/8,$0x%016x\n", polyid, reflect_bits((uint64(1)<<32)|ref_poly, 33)) // reflected? fmt.Fprintf(w, "DATA ·%sBarConst+24(SB)/8,$0x0000000000000000\n", polyid) fmt.Fprintf(w, "GLOBL ·%sBarConst(SB),RODATA,$32\n", polyid) }
Close