minio/cmd/crypto/crypto-options.go
2014-12-29 21:22:26 -08:00

127 lines
2.3 KiB
Go

/*
* Mini Object Storage, (C) 2014 Minio, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package main
import (
"bytes"
"encoding/binary"
"fmt"
"io/ioutil"
"log"
"os"
"github.com/codegangsta/cli"
"github.com/minio-io/minio/pkg/crypto/md5"
"github.com/minio-io/minio/pkg/crypto/sha1"
"github.com/minio-io/minio/pkg/crypto/sha256"
"github.com/minio-io/minio/pkg/crypto/sha512"
)
var Options = []cli.Command{
Md5sum,
Sha1sum,
// Sha1sumFast, // not working
Sha256sum,
Sha512sum,
}
var Md5sum = cli.Command{
Name: "md5sum",
Usage: "",
Description: `
`,
Action: doMd5sum,
}
var Sha1sum = cli.Command{
Name: "sha1sum",
Usage: "",
Description: `
`,
Action: doSha1sum,
}
var Sha1sumFast = cli.Command{
Name: "sha1sum-fast",
Usage: "",
Description: `
`,
Action: doSha1sumFast,
}
var Sha256sum = cli.Command{
Name: "sha256sum",
Usage: "",
Description: `
`,
Action: doSha256sum,
}
var Sha512sum = cli.Command{
Name: "sha512sum",
Usage: "",
Description: `
`,
Action: doSha512sum,
}
func doMd5sum(c *cli.Context) {
hash, err := md5.Sum(os.Stdin)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%x", hash)
}
func doSha1sum(c *cli.Context) {
hash, err := sha1.Sum(os.Stdin)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%x", hash)
}
func doSha1sumFast(c *cli.Context) {
buffer, err := ioutil.ReadAll(os.Stdin)
if err != nil {
log.Fatal(err)
}
hash, err := sha1.Sha1(buffer)
if err != nil {
log.Fatal(err)
}
var bytesBuffer bytes.Buffer
binary.Write(&bytesBuffer, binary.LittleEndian, hash)
fmt.Printf("%x", bytesBuffer.Bytes())
}
func doSha256sum(c *cli.Context) {
hash, err := sha256.Sum(os.Stdin)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%x", hash)
}
func doSha512sum(c *cli.Context) {
hash, err := sha512.Sum(os.Stdin)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%x", hash)
}