2016-08-12 12:56:50 +03:00
// Copyright 2016 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
2016-02-17 01:01:56 +03:00
package models
import (
2016-08-12 12:56:50 +03:00
"strings"
2016-02-17 01:01:56 +03:00
"testing"
2016-02-28 04:48:39 +03:00
2016-11-10 19:24:48 +03:00
"code.gitea.io/gitea/modules/setting"
2017-02-08 09:29:07 +03:00
"github.com/stretchr/testify/assert"
2016-02-17 01:01:56 +03:00
)
2016-02-28 04:48:39 +03:00
func init ( ) {
setting . NewContext ( )
}
func Test_SSHParsePublicKey ( t * testing . T ) {
2017-02-08 09:29:07 +03:00
test := func ( name , keyType string , length int , content string ) {
keyTypeN , lengthN , err := SSHNativeParsePublicKey ( content )
assert . NoError ( t , err )
assert . Equal ( t , keyType , keyTypeN )
assert . EqualValues ( t , length , lengthN )
keyTypeK , lengthK , err := SSHKeyGenParsePublicKey ( content )
if err != nil {
// Some servers do not support ecdsa format.
if ! strings . Contains ( err . Error ( ) , "line 1 too long:" ) {
assert . Fail ( t , "%v" , err )
2016-08-12 12:56:50 +03:00
}
2016-02-17 01:01:56 +03:00
}
2017-02-08 09:29:07 +03:00
assert . Equal ( t , keyType , keyTypeK )
assert . EqualValues ( t , length , lengthK )
}
test ( "dsa-1024" , "dsa" , 1024 , "ssh-dss AAAAB3NzaC1kc3MAAACBAOChCC7lf6Uo9n7BmZ6M8St19PZf4Tn59NriyboW2x/DZuYAz3ibZ2OkQ3S0SqDIa0HXSEJ1zaExQdmbO+Ux/wsytWZmCczWOVsaszBZSl90q8UnWlSH6P+/YA+RWJm5SFtuV9PtGIhyZgoNuz5kBQ7K139wuQsecdKktISwTakzAAAAFQCzKsO2JhNKlL+wwwLGOcLffoAmkwAAAIBpK7/3xvduajLBD/9vASqBQIHrgK2J+wiQnIb/Wzy0UsVmvfn8A+udRbBo+csM8xrSnlnlJnjkJS3qiM5g+eTwsLIV1IdKPEwmwB+VcP53Cw6lSyWyJcvhFb0N6s08NZysLzvj0N+ZC/FnhKTLzIyMtkHf/IrPCwlM+pV/M/96YgAAAIEAqQcGn9CKgzgPaguIZooTAOQdvBLMI5y0bQjOW6734XOpqQGf/Kra90wpoasLKZjSYKNPjE+FRUOrStLrxcNs4BeVKhy2PYTRnybfYVk1/dmKgH6P1YSRONsGKvTsH6c5IyCRG0ncCgYeF8tXppyd642982daopE7zQ/NPAnJfag= nocomment" )
test ( "rsa-1024" , "rsa" , 1024 , "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDAu7tvIvX6ZHrRXuZNfkR3XLHSsuCK9Zn3X58lxBcQzuo5xZgB6vRwwm/QtJuF+zZPtY5hsQILBLmF+BZ5WpKZp1jBeSjH2G7lxet9kbcH+kIVj0tPFEoyKI9wvWqIwC4prx/WVk2wLTJjzBAhyNxfEq7C9CeiX9pQEbEqJfkKCQ== nocomment\n" )
test ( "rsa-2048" , "rsa" , 2048 , "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMZXh+1OBUwSH9D45wTaxErQIN9IoC9xl7MKJkqvTvv6O5RR9YW/IK9FbfjXgXsppYGhsCZo1hFOOsXHMnfOORqu/xMDx4yPuyvKpw4LePEcg4TDipaDFuxbWOqc/BUZRZcXu41QAWfDLrInwsltWZHSeG7hjhpacl4FrVv9V1pS6Oc5Q1NxxEzTzuNLS/8diZrTm/YAQQ/+B+mzWI3zEtF4miZjjAljWd1LTBPvU23d29DcBmmFahcZ441XZsTeAwGxG/Q6j8NgNXj9WxMeWwxXV2jeAX/EBSpZrCVlCQ1yJswT6xCp8TuBnTiGWYMBNTbOZvPC4e0WI2/yZW/s5F nocomment" )
test ( "ecdsa-256" , "ecdsa" , 256 , "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFQacN3PrOll7PXmN5B/ZNVahiUIqI05nbBlZk1KXsO3d06ktAWqbNflv2vEmA38bTFTfJ2sbn2B5ksT52cDDbA= nocomment" )
test ( "ecdsa-384" , "ecdsa" , 384 , "ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBINmioV+XRX1Fm9Qk2ehHXJ2tfVxW30ypUWZw670Zyq5GQfBAH6xjygRsJ5wWsHXBsGYgFUXIHvMKVAG1tpw7s6ax9oA+dJOJ7tj+vhn8joFqT+sg3LYHgZkHrfqryRasQ== nocomment" )
2016-02-17 01:01:56 +03:00
}