summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/oauth2/internal/oauth2.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2019-12-26 23:12:28 +0100
committerWim <wim@42.be>2020-03-01 22:19:33 +0100
commit795a8705c3fdc5bf55e83d382e7d3ff233896a0b (patch)
tree46ac43e487102de7ea21a823a7a7902ae9493f88 /vendor/golang.org/x/oauth2/internal/oauth2.go
parent3af0dc3b3a5bfaffe37770c437427f1e99402405 (diff)
downloadmatterbridge-msglm-795a8705c3fdc5bf55e83d382e7d3ff233896a0b.tar.gz
matterbridge-msglm-795a8705c3fdc5bf55e83d382e7d3ff233896a0b.tar.bz2
matterbridge-msglm-795a8705c3fdc5bf55e83d382e7d3ff233896a0b.zip
Add initial Microsoft Teams support
Documentation on https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
Diffstat (limited to 'vendor/golang.org/x/oauth2/internal/oauth2.go')
-rw-r--r--vendor/golang.org/x/oauth2/internal/oauth2.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/golang.org/x/oauth2/internal/oauth2.go b/vendor/golang.org/x/oauth2/internal/oauth2.go
new file mode 100644
index 00000000..c0ab196c
--- /dev/null
+++ b/vendor/golang.org/x/oauth2/internal/oauth2.go
@@ -0,0 +1,37 @@
+// Copyright 2014 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.
+
+package internal
+
+import (
+ "crypto/rsa"
+ "crypto/x509"
+ "encoding/pem"
+ "errors"
+ "fmt"
+)
+
+// ParseKey converts the binary contents of a private key file
+// to an *rsa.PrivateKey. It detects whether the private key is in a
+// PEM container or not. If so, it extracts the the private key
+// from PEM container before conversion. It only supports PEM
+// containers with no passphrase.
+func ParseKey(key []byte) (*rsa.PrivateKey, error) {
+ block, _ := pem.Decode(key)
+ if block != nil {
+ key = block.Bytes
+ }
+ parsedKey, err := x509.ParsePKCS8PrivateKey(key)
+ if err != nil {
+ parsedKey, err = x509.ParsePKCS1PrivateKey(key)
+ if err != nil {
+ return nil, fmt.Errorf("private key should be a PEM or plain PKCS1 or PKCS8; parse error: %v", err)
+ }
+ }
+ parsed, ok := parsedKey.(*rsa.PrivateKey)
+ if !ok {
+ return nil, errors.New("private key is invalid")
+ }
+ return parsed, nil
+}