mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 14:02:25 -05:00 
			
		
		
		
	[chore]: Bump github.com/coreos/go-oidc/v3 from 3.9.0 to 3.10.0 (#2779)
This commit is contained in:
		
					parent
					
						
							
								5f43419a87
							
						
					
				
			
			
				commit
				
					
						a24936040c
					
				
			
		
					 38 changed files with 284 additions and 126 deletions
				
			
		
							
								
								
									
										4
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								go.mod
									
										
									
									
									
								
							|  | @ -25,7 +25,7 @@ require ( | ||||||
| 	github.com/KimMachineGun/automemlimit v0.5.0 | 	github.com/KimMachineGun/automemlimit v0.5.0 | ||||||
| 	github.com/abema/go-mp4 v1.2.0 | 	github.com/abema/go-mp4 v1.2.0 | ||||||
| 	github.com/buckket/go-blurhash v1.1.0 | 	github.com/buckket/go-blurhash v1.1.0 | ||||||
| 	github.com/coreos/go-oidc/v3 v3.9.0 | 	github.com/coreos/go-oidc/v3 v3.10.0 | ||||||
| 	github.com/disintegration/imaging v1.6.2 | 	github.com/disintegration/imaging v1.6.2 | ||||||
| 	github.com/gin-contrib/cors v1.7.1 | 	github.com/gin-contrib/cors v1.7.1 | ||||||
| 	github.com/gin-contrib/gzip v1.0.0 | 	github.com/gin-contrib/gzip v1.0.0 | ||||||
|  | @ -114,7 +114,7 @@ require ( | ||||||
| 	github.com/gin-contrib/sse v0.1.0 // indirect | 	github.com/gin-contrib/sse v0.1.0 // indirect | ||||||
| 	github.com/go-errors/errors v1.4.1 // indirect | 	github.com/go-errors/errors v1.4.1 // indirect | ||||||
| 	github.com/go-fed/httpsig v1.1.0 // indirect | 	github.com/go-fed/httpsig v1.1.0 // indirect | ||||||
| 	github.com/go-jose/go-jose/v3 v3.0.3 // indirect | 	github.com/go-jose/go-jose/v4 v4.0.1 // indirect | ||||||
| 	github.com/go-logr/logr v1.4.1 // indirect | 	github.com/go-logr/logr v1.4.1 // indirect | ||||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | 	github.com/go-logr/stdr v1.2.2 // indirect | ||||||
| 	github.com/go-openapi/analysis v0.21.4 // indirect | 	github.com/go-openapi/analysis v0.21.4 // indirect | ||||||
|  |  | ||||||
							
								
								
									
										22
									
								
								go.sum
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								go.sum
									
										
									
									
									
								
							|  | @ -128,8 +128,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk | ||||||
| github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= | github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= | ||||||
| github.com/containerd/cgroups/v3 v3.0.1 h1:4hfGvu8rfGIwVIDd+nLzn/B9ZXx4BcCjzt5ToenJRaE= | github.com/containerd/cgroups/v3 v3.0.1 h1:4hfGvu8rfGIwVIDd+nLzn/B9ZXx4BcCjzt5ToenJRaE= | ||||||
| github.com/containerd/cgroups/v3 v3.0.1/go.mod h1:/vtwk1VXrtoa5AaZLkypuOJgA/6DyPMZHJPGQNtlHnw= | github.com/containerd/cgroups/v3 v3.0.1/go.mod h1:/vtwk1VXrtoa5AaZLkypuOJgA/6DyPMZHJPGQNtlHnw= | ||||||
| github.com/coreos/go-oidc/v3 v3.9.0 h1:0J/ogVOd4y8P0f0xUh8l9t07xRP/d8tccvjHl2dcsSo= | github.com/coreos/go-oidc/v3 v3.10.0 h1:tDnXHnLyiTVyT/2zLDGj09pFPkhND8Gl8lnTRhoEaJU= | ||||||
| github.com/coreos/go-oidc/v3 v3.9.0/go.mod h1:rTKz2PYwftcrtoCzV5g5kvfJoWcm0Mk8AF8y1iAQro4= | github.com/coreos/go-oidc/v3 v3.10.0/go.mod h1:5j11xcw0D3+SGxn6Z/WFADsgcWVMyNAlSQupk0KK3ac= | ||||||
| github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= | github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= | ||||||
| github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= | github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= | ||||||
| github.com/cornelk/hashmap v1.0.8 h1:nv0AWgw02n+iDcawr5It4CjQIAcdMMKRrs10HOJYlrc= | github.com/cornelk/hashmap v1.0.8 h1:nv0AWgw02n+iDcawr5It4CjQIAcdMMKRrs10HOJYlrc= | ||||||
|  | @ -203,8 +203,8 @@ github.com/go-fed/httpsig v1.1.0/go.mod h1:RCMrTZvN1bJYtofsG4rd5NaO5obxQ5xBkdiS7 | ||||||
| github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= | github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= | ||||||
| github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= | ||||||
| github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= | ||||||
| github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k= | github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U= | ||||||
| github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= | github.com/go-jose/go-jose/v4 v4.0.1/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= | ||||||
| github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||||
| github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= | github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= | ||||||
| github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= | github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= | ||||||
|  | @ -350,7 +350,6 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ | ||||||
| github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||||
| github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||||
| github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||||
| github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= |  | ||||||
| github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | ||||||
| github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | ||||||
| github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= | github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= | ||||||
|  | @ -762,7 +761,6 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh | ||||||
| golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||||
| golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | ||||||
| golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= | golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= | ||||||
| golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= |  | ||||||
| golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= | golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= | ||||||
| golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= | golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= | ||||||
| golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||||
|  | @ -801,7 +799,6 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB | ||||||
| golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||||
| golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||||
| golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | ||||||
| golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= |  | ||||||
| golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= | golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= | ||||||
| golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= | golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= | ||||||
| golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
|  | @ -838,8 +835,6 @@ golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1 | ||||||
| golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||||
| golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||||
| golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= | golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= | ||||||
| golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= |  | ||||||
| golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= |  | ||||||
| golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= | golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= | ||||||
| golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= | golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= | ||||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||||
|  | @ -861,7 +856,6 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ | ||||||
| golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= |  | ||||||
| golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= | golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= | ||||||
| golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | ||||||
| golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
|  | @ -911,16 +905,11 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc | ||||||
| golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= |  | ||||||
| golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= | golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= | ||||||
| golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||||
| golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||||
| golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= | golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= | ||||||
| golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= |  | ||||||
| golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= |  | ||||||
| golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= |  | ||||||
| golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= | golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= | ||||||
| golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= | golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= | ||||||
| golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
|  | @ -933,8 +922,6 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||||
| golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | ||||||
| golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= | golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= | ||||||
| golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||||
| golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= |  | ||||||
| golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= |  | ||||||
| golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
| golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
|  | @ -986,7 +973,6 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc | ||||||
| golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||||
| golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||||
| golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= | golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= | ||||||
| golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= |  | ||||||
| golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= | golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= | ||||||
| golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= | golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= | ||||||
| golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
|  |  | ||||||
							
								
								
									
										15
									
								
								vendor/github.com/coreos/go-oidc/v3/oidc/jose.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/coreos/go-oidc/v3/oidc/jose.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,5 +1,7 @@ | ||||||
| package oidc | package oidc | ||||||
| 
 | 
 | ||||||
|  | import jose "github.com/go-jose/go-jose/v4" | ||||||
|  | 
 | ||||||
| // JOSE asymmetric signing algorithm values as defined by RFC 7518 | // JOSE asymmetric signing algorithm values as defined by RFC 7518 | ||||||
| // | // | ||||||
| // see: https://tools.ietf.org/html/rfc7518#section-3.1 | // see: https://tools.ietf.org/html/rfc7518#section-3.1 | ||||||
|  | @ -15,3 +17,16 @@ const ( | ||||||
| 	PS512 = "PS512" // RSASSA-PSS using SHA512 and MGF1-SHA512 | 	PS512 = "PS512" // RSASSA-PSS using SHA512 and MGF1-SHA512 | ||||||
| 	EdDSA = "EdDSA" // Ed25519 using SHA-512 | 	EdDSA = "EdDSA" // Ed25519 using SHA-512 | ||||||
| ) | ) | ||||||
|  | 
 | ||||||
|  | var allAlgs = []jose.SignatureAlgorithm{ | ||||||
|  | 	jose.RS256, | ||||||
|  | 	jose.RS384, | ||||||
|  | 	jose.RS512, | ||||||
|  | 	jose.ES256, | ||||||
|  | 	jose.ES384, | ||||||
|  | 	jose.ES512, | ||||||
|  | 	jose.PS256, | ||||||
|  | 	jose.PS384, | ||||||
|  | 	jose.PS512, | ||||||
|  | 	jose.EdDSA, | ||||||
|  | } | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								vendor/github.com/coreos/go-oidc/v3/oidc/jwks.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/coreos/go-oidc/v3/oidc/jwks.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -13,7 +13,7 @@ import ( | ||||||
| 	"sync" | 	"sync" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	jose "github.com/go-jose/go-jose/v3" | 	jose "github.com/go-jose/go-jose/v4" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // StaticKeySet is a verifier that validates JWT against a static set of public keys. | // StaticKeySet is a verifier that validates JWT against a static set of public keys. | ||||||
|  | @ -25,7 +25,9 @@ type StaticKeySet struct { | ||||||
| 
 | 
 | ||||||
| // VerifySignature compares the signature against a static set of public keys. | // VerifySignature compares the signature against a static set of public keys. | ||||||
| func (s *StaticKeySet) VerifySignature(ctx context.Context, jwt string) ([]byte, error) { | func (s *StaticKeySet) VerifySignature(ctx context.Context, jwt string) ([]byte, error) { | ||||||
| 	jws, err := jose.ParseSigned(jwt) | 	// Algorithms are already checked by Verifier, so this parse method accepts | ||||||
|  | 	// any algorithm. | ||||||
|  | 	jws, err := jose.ParseSigned(jwt, allAlgs) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("parsing jwt: %v", err) | 		return nil, fmt.Errorf("parsing jwt: %v", err) | ||||||
| 	} | 	} | ||||||
|  | @ -127,8 +129,13 @@ var parsedJWTKey contextKey | ||||||
| func (r *RemoteKeySet) VerifySignature(ctx context.Context, jwt string) ([]byte, error) { | func (r *RemoteKeySet) VerifySignature(ctx context.Context, jwt string) ([]byte, error) { | ||||||
| 	jws, ok := ctx.Value(parsedJWTKey).(*jose.JSONWebSignature) | 	jws, ok := ctx.Value(parsedJWTKey).(*jose.JSONWebSignature) | ||||||
| 	if !ok { | 	if !ok { | ||||||
|  | 		// The algorithm values are already enforced by the Validator, which also sets | ||||||
|  | 		// the context value above to pre-parsed signature. | ||||||
|  | 		// | ||||||
|  | 		// Practically, this codepath isn't called in normal use of this package, but | ||||||
|  | 		// if it is, the algorithms have already been checked. | ||||||
| 		var err error | 		var err error | ||||||
| 		jws, err = jose.ParseSigned(jwt) | 		jws, err = jose.ParseSigned(jwt, allAlgs) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, fmt.Errorf("oidc: malformed jwt: %v", err) | 			return nil, fmt.Errorf("oidc: malformed jwt: %v", err) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/github.com/coreos/go-oidc/v3/oidc/oidc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/coreos/go-oidc/v3/oidc/oidc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -79,7 +79,7 @@ func getClient(ctx context.Context) *http.Client { | ||||||
| //	provider, err := oidc.NewProvider(ctx, discoveryBaseURL) | //	provider, err := oidc.NewProvider(ctx, discoveryBaseURL) | ||||||
| // | // | ||||||
| // This is insecure because validating the correct issuer is critical for multi-tenant | // This is insecure because validating the correct issuer is critical for multi-tenant | ||||||
| // proivders. Any overrides here MUST be carefully reviewed. | // providers. Any overrides here MUST be carefully reviewed. | ||||||
| func InsecureIssuerURLContext(ctx context.Context, issuerURL string) context.Context { | func InsecureIssuerURLContext(ctx context.Context, issuerURL string) context.Context { | ||||||
| 	return context.WithValue(ctx, issuerURLKey, issuerURL) | 	return context.WithValue(ctx, issuerURLKey, issuerURL) | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										23
									
								
								vendor/github.com/coreos/go-oidc/v3/oidc/verify.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								vendor/github.com/coreos/go-oidc/v3/oidc/verify.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -12,7 +12,7 @@ import ( | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	jose "github.com/go-jose/go-jose/v3" | 	jose "github.com/go-jose/go-jose/v4" | ||||||
| 	"golang.org/x/oauth2" | 	"golang.org/x/oauth2" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -310,7 +310,16 @@ func (v *IDTokenVerifier) Verify(ctx context.Context, rawIDToken string) (*IDTok | ||||||
| 		return t, nil | 		return t, nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	jws, err := jose.ParseSigned(rawIDToken) | 	var supportedSigAlgs []jose.SignatureAlgorithm | ||||||
|  | 	for _, alg := range v.config.SupportedSigningAlgs { | ||||||
|  | 		supportedSigAlgs = append(supportedSigAlgs, jose.SignatureAlgorithm(alg)) | ||||||
|  | 	} | ||||||
|  | 	if len(supportedSigAlgs) == 0 { | ||||||
|  | 		// If no algorithms were specified by both the config and discovery, default | ||||||
|  | 		// to the one mandatory algorithm "RS256". | ||||||
|  | 		supportedSigAlgs = []jose.SignatureAlgorithm{jose.RS256} | ||||||
|  | 	} | ||||||
|  | 	jws, err := jose.ParseSigned(rawIDToken, supportedSigAlgs) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("oidc: malformed jwt: %v", err) | 		return nil, fmt.Errorf("oidc: malformed jwt: %v", err) | ||||||
| 	} | 	} | ||||||
|  | @ -322,17 +331,7 @@ func (v *IDTokenVerifier) Verify(ctx context.Context, rawIDToken string) (*IDTok | ||||||
| 	default: | 	default: | ||||||
| 		return nil, fmt.Errorf("oidc: multiple signatures on id token not supported") | 		return nil, fmt.Errorf("oidc: multiple signatures on id token not supported") | ||||||
| 	} | 	} | ||||||
| 
 |  | ||||||
| 	sig := jws.Signatures[0] | 	sig := jws.Signatures[0] | ||||||
| 	supportedSigAlgs := v.config.SupportedSigningAlgs |  | ||||||
| 	if len(supportedSigAlgs) == 0 { |  | ||||||
| 		supportedSigAlgs = []string{RS256} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if !contains(supportedSigAlgs, sig.Header.Algorithm) { |  | ||||||
| 		return nil, fmt.Errorf("oidc: id token signed with unsupported algorithm, expected %q got %q", supportedSigAlgs, sig.Header.Algorithm) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	t.sigAlgorithm = sig.Header.Algorithm | 	t.sigAlgorithm = sig.Header.Algorithm | ||||||
| 
 | 
 | ||||||
| 	ctx = context.WithValue(ctx, parsedJWTKey, jws) | 	ctx = context.WithValue(ctx, parsedJWTKey, jws) | ||||||
|  |  | ||||||
|  | @ -45,12 +45,6 @@ token". | ||||||
| 
 | 
 | ||||||
| [1]: https://i.blackhat.com/BH-US-23/Presentations/US-23-Tervoort-Three-New-Attacks-Against-JSON-Web-Tokens.pdf | [1]: https://i.blackhat.com/BH-US-23/Presentations/US-23-Tervoort-Three-New-Attacks-Against-JSON-Web-Tokens.pdf | ||||||
| 
 | 
 | ||||||
| # v3.0.3 |  | ||||||
| 
 |  | ||||||
| ## Fixed |  | ||||||
| 
 |  | ||||||
|  - Limit decompression output size to prevent a DoS. Backport from v4.0.1. |  | ||||||
| 
 |  | ||||||
| # v3.0.2 | # v3.0.2 | ||||||
| 
 | 
 | ||||||
| ## Fixed | ## Fixed | ||||||
|  | @ -1,17 +1,9 @@ | ||||||
| # Go JOSE | # Go JOSE | ||||||
| 
 | 
 | ||||||
| ### Versions | [](https://pkg.go.dev/github.com/go-jose/go-jose/v4) | ||||||
| 
 | [](https://pkg.go.dev/github.com/go-jose/go-jose/v4/jwt) | ||||||
| [Version 4](https://github.com/go-jose/go-jose) | [](https://raw.githubusercontent.com/go-jose/go-jose/master/LICENSE) | ||||||
| ([branch](https://github.com/go-jose/go-jose/), | [](https://github.com/go-jose/go-jose/actions) | ||||||
| [doc](https://pkg.go.dev/github.com/go-jose/go-jose/v4), [releases](https://github.com/go-jose/go-jose/releases)) is the current stable version: |  | ||||||
| 
 |  | ||||||
|     import "github.com/go-jose/go-jose/v4" |  | ||||||
| 
 |  | ||||||
| The old [square/go-jose](https://github.com/square/go-jose) repo contains the prior v1 and v2 versions, which |  | ||||||
| are deprecated. |  | ||||||
| 
 |  | ||||||
| ### Summary |  | ||||||
| 
 | 
 | ||||||
| Package jose aims to provide an implementation of the Javascript Object Signing | Package jose aims to provide an implementation of the Javascript Object Signing | ||||||
| and Encryption set of standards. This includes support for JSON Web Encryption, | and Encryption set of standards. This includes support for JSON Web Encryption, | ||||||
|  | @ -43,6 +35,20 @@ of [case-insensitive matching](https://www.ietf.org/mail-archive/web/json/curren | ||||||
| This is to avoid differences in interpretation of messages between go-jose and | This is to avoid differences in interpretation of messages between go-jose and | ||||||
| libraries in other languages. | libraries in other languages. | ||||||
| 
 | 
 | ||||||
|  | ### Versions | ||||||
|  | 
 | ||||||
|  | [Version 4](https://github.com/go-jose/go-jose) | ||||||
|  | ([branch](https://github.com/go-jose/go-jose/tree/main), | ||||||
|  | [doc](https://pkg.go.dev/github.com/go-jose/go-jose/v4), [releases](https://github.com/go-jose/go-jose/releases)) is the current stable version: | ||||||
|  | 
 | ||||||
|  |     import "github.com/go-jose/go-jose/v4" | ||||||
|  | 
 | ||||||
|  | The old [square/go-jose](https://github.com/square/go-jose) repo contains the prior v1 and v2 versions, which | ||||||
|  | are still useable but not actively developed anymore. | ||||||
|  | 
 | ||||||
|  | Version 3, in this repo, is still receiving security fixes but not functionality | ||||||
|  | updates. | ||||||
|  | 
 | ||||||
| ### Supported algorithms | ### Supported algorithms | ||||||
| 
 | 
 | ||||||
| See below for a table of supported algorithms. Algorithm identifiers match | See below for a table of supported algorithms. Algorithm identifiers match | ||||||
|  | @ -98,11 +104,11 @@ allows attaching a key id. | ||||||
| 
 | 
 | ||||||
| ## Examples | ## Examples | ||||||
| 
 | 
 | ||||||
| [](https://pkg.go.dev/github.com/go-jose/go-jose/v3) | [](https://pkg.go.dev/github.com/go-jose/go-jose/v4) | ||||||
| [](https://pkg.go.dev/github.com/go-jose/go-jose/v3/jwt) | [](https://pkg.go.dev/github.com/go-jose/go-jose/v4/jwt) | ||||||
| 
 | 
 | ||||||
| Examples can be found in the Godoc | Examples can be found in the Godoc | ||||||
| reference for this package. The | reference for this package. The | ||||||
| [`jose-util`](https://github.com/go-jose/go-jose/tree/v3/jose-util) | [`jose-util`](https://github.com/go-jose/go-jose/tree/v4/jose-util) | ||||||
| subdirectory also contains a small command-line utility which might be useful | subdirectory also contains a small command-line utility which might be useful | ||||||
| as an example as well. | as an example as well. | ||||||
|  | @ -29,8 +29,8 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"math/big" | 	"math/big" | ||||||
| 
 | 
 | ||||||
| 	josecipher "github.com/go-jose/go-jose/v3/cipher" | 	josecipher "github.com/go-jose/go-jose/v4/cipher" | ||||||
| 	"github.com/go-jose/go-jose/v3/json" | 	"github.com/go-jose/go-jose/v4/json" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // A generic RSA-based encrypter/verifier | // A generic RSA-based encrypter/verifier | ||||||
|  | @ -22,7 +22,7 @@ import ( | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-jose/go-jose/v3/json" | 	"github.com/go-jose/go-jose/v4/json" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Encrypter represents an encrypter which produces an encrypted JWE object. | // Encrypter represents an encrypter which produces an encrypted JWE object. | ||||||
|  | @ -27,7 +27,7 @@ import ( | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"unicode" | 	"unicode" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-jose/go-jose/v3/json" | 	"github.com/go-jose/go-jose/v4/json" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Helper function to serialize known-good objects. | // Helper function to serialize known-good objects. | ||||||
|  | @ -106,10 +106,7 @@ func inflate(input []byte) ([]byte, error) { | ||||||
| 	output := new(bytes.Buffer) | 	output := new(bytes.Buffer) | ||||||
| 	reader := flate.NewReader(bytes.NewBuffer(input)) | 	reader := flate.NewReader(bytes.NewBuffer(input)) | ||||||
| 
 | 
 | ||||||
| 	maxCompressedSize := 10 * int64(len(input)) | 	maxCompressedSize := max(250_000, 10*int64(len(input))) | ||||||
| 	if maxCompressedSize < 250000 { |  | ||||||
| 		maxCompressedSize = 250000 |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	limit := maxCompressedSize + 1 | 	limit := maxCompressedSize + 1 | ||||||
| 	n, err := io.CopyN(output, reader, limit) | 	n, err := io.CopyN(output, reader, limit) | ||||||
|  | @ -167,7 +164,7 @@ func (b *byteBuffer) UnmarshalJSON(data []byte) error { | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	decoded, err := base64URLDecode(encoded) | 	decoded, err := base64.RawURLEncoding.DecodeString(encoded) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  | @ -197,12 +194,6 @@ func (b byteBuffer) toInt() int { | ||||||
| 	return int(b.bigInt().Int64()) | 	return int(b.bigInt().Int64()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // base64URLDecode is implemented as defined in https://www.rfc-editor.org/rfc/rfc7515.html#appendix-C |  | ||||||
| func base64URLDecode(value string) ([]byte, error) { |  | ||||||
| 	value = strings.TrimRight(value, "=") |  | ||||||
| 	return base64.RawURLEncoding.DecodeString(value) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func base64EncodeLen(sl []byte) int { | func base64EncodeLen(sl []byte) int { | ||||||
| 	return base64.RawURLEncoding.EncodedLen(len(sl)) | 	return base64.RawURLEncoding.EncodedLen(len(sl)) | ||||||
| } | } | ||||||
							
								
								
									
										134
									
								
								vendor/github.com/go-jose/go-jose/v3/jwe.go → vendor/github.com/go-jose/go-jose/v4/jwe.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										134
									
								
								vendor/github.com/go-jose/go-jose/v3/jwe.go → vendor/github.com/go-jose/go-jose/v4/jwe.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -18,10 +18,11 @@ package jose | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"encoding/base64" | 	"encoding/base64" | ||||||
|  | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-jose/go-jose/v3/json" | 	"github.com/go-jose/go-jose/v4/json" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // rawJSONWebEncryption represents a raw JWE JSON object. Used for parsing/serializing. | // rawJSONWebEncryption represents a raw JWE JSON object. Used for parsing/serializing. | ||||||
|  | @ -104,29 +105,75 @@ func (obj JSONWebEncryption) computeAuthData() []byte { | ||||||
| 	return output | 	return output | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ParseEncrypted parses an encrypted message in compact or JWE JSON Serialization format. | func containsKeyAlgorithm(haystack []KeyAlgorithm, needle KeyAlgorithm) bool { | ||||||
| func ParseEncrypted(input string) (*JSONWebEncryption, error) { | 	for _, algorithm := range haystack { | ||||||
| 	input = stripWhitespace(input) | 		if algorithm == needle { | ||||||
| 	if strings.HasPrefix(input, "{") { | 			return true | ||||||
| 		return parseEncryptedFull(input) |  | ||||||
| 		} | 		} | ||||||
| 
 | 	} | ||||||
| 	return parseEncryptedCompact(input) | 	return false | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // parseEncryptedFull parses a message in compact format. | func containsContentEncryption(haystack []ContentEncryption, needle ContentEncryption) bool { | ||||||
| func parseEncryptedFull(input string) (*JSONWebEncryption, error) { | 	for _, algorithm := range haystack { | ||||||
|  | 		if algorithm == needle { | ||||||
|  | 			return true | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return false | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ParseEncrypted parses an encrypted message in JWE Compact or JWE JSON Serialization. | ||||||
|  | // | ||||||
|  | // https://datatracker.ietf.org/doc/html/rfc7516#section-3.1 | ||||||
|  | // https://datatracker.ietf.org/doc/html/rfc7516#section-3.2 | ||||||
|  | // | ||||||
|  | // The keyAlgorithms and contentEncryption parameters are used to validate the "alg" and "enc" | ||||||
|  | // header parameters respectively. They must be nonempty, and each "alg" or "enc" header in | ||||||
|  | // parsed data must contain a value that is present in the corresponding parameter. That | ||||||
|  | // includes the protected and unprotected headers as well as all recipients. To accept | ||||||
|  | // multiple algorithms, pass a slice of all the algorithms you want to accept. | ||||||
|  | func ParseEncrypted(input string, | ||||||
|  | 	keyEncryptionAlgorithms []KeyAlgorithm, | ||||||
|  | 	contentEncryption []ContentEncryption, | ||||||
|  | ) (*JSONWebEncryption, error) { | ||||||
|  | 	input = stripWhitespace(input) | ||||||
|  | 	if strings.HasPrefix(input, "{") { | ||||||
|  | 		return ParseEncryptedJSON(input, keyEncryptionAlgorithms, contentEncryption) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return ParseEncryptedCompact(input, keyEncryptionAlgorithms, contentEncryption) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ParseEncryptedJSON parses a message in JWE JSON Serialization. | ||||||
|  | // | ||||||
|  | // https://datatracker.ietf.org/doc/html/rfc7516#section-3.2 | ||||||
|  | func ParseEncryptedJSON( | ||||||
|  | 	input string, | ||||||
|  | 	keyEncryptionAlgorithms []KeyAlgorithm, | ||||||
|  | 	contentEncryption []ContentEncryption, | ||||||
|  | ) (*JSONWebEncryption, error) { | ||||||
| 	var parsed rawJSONWebEncryption | 	var parsed rawJSONWebEncryption | ||||||
| 	err := json.Unmarshal([]byte(input), &parsed) | 	err := json.Unmarshal([]byte(input), &parsed) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return parsed.sanitized() | 	return parsed.sanitized(keyEncryptionAlgorithms, contentEncryption) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // sanitized produces a cleaned-up JWE object from the raw JSON. | // sanitized produces a cleaned-up JWE object from the raw JSON. | ||||||
| func (parsed *rawJSONWebEncryption) sanitized() (*JSONWebEncryption, error) { | func (parsed *rawJSONWebEncryption) sanitized( | ||||||
|  | 	keyEncryptionAlgorithms []KeyAlgorithm, | ||||||
|  | 	contentEncryption []ContentEncryption, | ||||||
|  | ) (*JSONWebEncryption, error) { | ||||||
|  | 	if len(keyEncryptionAlgorithms) == 0 { | ||||||
|  | 		return nil, errors.New("go-jose/go-jose: no key algorithms provided") | ||||||
|  | 	} | ||||||
|  | 	if len(contentEncryption) == 0 { | ||||||
|  | 		return nil, errors.New("go-jose/go-jose: no content encryption algorithms provided") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	obj := &JSONWebEncryption{ | 	obj := &JSONWebEncryption{ | ||||||
| 		original:    parsed, | 		original:    parsed, | ||||||
| 		unprotected: parsed.Unprotected, | 		unprotected: parsed.Unprotected, | ||||||
|  | @ -170,7 +217,7 @@ func (parsed *rawJSONWebEncryption) sanitized() (*JSONWebEncryption, error) { | ||||||
| 	} else { | 	} else { | ||||||
| 		obj.recipients = make([]recipientInfo, len(parsed.Recipients)) | 		obj.recipients = make([]recipientInfo, len(parsed.Recipients)) | ||||||
| 		for r := range parsed.Recipients { | 		for r := range parsed.Recipients { | ||||||
| 			encryptedKey, err := base64URLDecode(parsed.Recipients[r].EncryptedKey) | 			encryptedKey, err := base64.RawURLEncoding.DecodeString(parsed.Recipients[r].EncryptedKey) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return nil, err | 				return nil, err | ||||||
| 			} | 			} | ||||||
|  | @ -185,10 +232,31 @@ func (parsed *rawJSONWebEncryption) sanitized() (*JSONWebEncryption, error) { | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	for _, recipient := range obj.recipients { | 	for i, recipient := range obj.recipients { | ||||||
| 		headers := obj.mergedHeaders(&recipient) | 		headers := obj.mergedHeaders(&recipient) | ||||||
| 		if headers.getAlgorithm() == "" || headers.getEncryption() == "" { | 		if headers.getAlgorithm() == "" { | ||||||
| 			return nil, fmt.Errorf("go-jose/go-jose: message is missing alg/enc headers") | 			return nil, fmt.Errorf(`go-jose/go-jose: recipient %d: missing header "alg"`, i) | ||||||
|  | 		} | ||||||
|  | 		if headers.getEncryption() == "" { | ||||||
|  | 			return nil, fmt.Errorf(`go-jose/go-jose: recipient %d: missing header "enc"`, i) | ||||||
|  | 		} | ||||||
|  | 		err := validateAlgEnc(headers, keyEncryptionAlgorithms, contentEncryption) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, fmt.Errorf("go-jose/go-jose: recipient %d: %s", i, err) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if obj.protected != nil { | ||||||
|  | 		err := validateAlgEnc(*obj.protected, keyEncryptionAlgorithms, contentEncryption) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, fmt.Errorf("go-jose/go-jose: protected header: %s", err) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if obj.unprotected != nil { | ||||||
|  | 		err := validateAlgEnc(*obj.unprotected, keyEncryptionAlgorithms, contentEncryption) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, fmt.Errorf("go-jose/go-jose: unprotected header: %s", err) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -200,34 +268,52 @@ func (parsed *rawJSONWebEncryption) sanitized() (*JSONWebEncryption, error) { | ||||||
| 	return obj, nil | 	return obj, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // parseEncryptedCompact parses a message in compact format. | func validateAlgEnc(headers rawHeader, keyAlgorithms []KeyAlgorithm, contentEncryption []ContentEncryption) error { | ||||||
| func parseEncryptedCompact(input string) (*JSONWebEncryption, error) { | 	alg := headers.getAlgorithm() | ||||||
|  | 	enc := headers.getEncryption() | ||||||
|  | 	if alg != "" && !containsKeyAlgorithm(keyAlgorithms, alg) { | ||||||
|  | 		return fmt.Errorf("unexpected key algorithm %q; expected %q", alg, keyAlgorithms) | ||||||
|  | 	} | ||||||
|  | 	if alg != "" && !containsContentEncryption(contentEncryption, enc) { | ||||||
|  | 		return fmt.Errorf("unexpected content encryption algorithm %q; expected %q", enc, contentEncryption) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ParseEncryptedCompact parses a message in JWE Compact Serialization. | ||||||
|  | // | ||||||
|  | // https://datatracker.ietf.org/doc/html/rfc7516#section-3.1 | ||||||
|  | func ParseEncryptedCompact( | ||||||
|  | 	input string, | ||||||
|  | 	keyAlgorithms []KeyAlgorithm, | ||||||
|  | 	contentEncryption []ContentEncryption, | ||||||
|  | ) (*JSONWebEncryption, error) { | ||||||
| 	parts := strings.Split(input, ".") | 	parts := strings.Split(input, ".") | ||||||
| 	if len(parts) != 5 { | 	if len(parts) != 5 { | ||||||
| 		return nil, fmt.Errorf("go-jose/go-jose: compact JWE format must have five parts") | 		return nil, fmt.Errorf("go-jose/go-jose: compact JWE format must have five parts") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	rawProtected, err := base64URLDecode(parts[0]) | 	rawProtected, err := base64.RawURLEncoding.DecodeString(parts[0]) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	encryptedKey, err := base64URLDecode(parts[1]) | 	encryptedKey, err := base64.RawURLEncoding.DecodeString(parts[1]) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	iv, err := base64URLDecode(parts[2]) | 	iv, err := base64.RawURLEncoding.DecodeString(parts[2]) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ciphertext, err := base64URLDecode(parts[3]) | 	ciphertext, err := base64.RawURLEncoding.DecodeString(parts[3]) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	tag, err := base64URLDecode(parts[4]) | 	tag, err := base64.RawURLEncoding.DecodeString(parts[4]) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|  | @ -240,7 +326,7 @@ func parseEncryptedCompact(input string) (*JSONWebEncryption, error) { | ||||||
| 		Tag:          newBuffer(tag), | 		Tag:          newBuffer(tag), | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return raw.sanitized() | 	return raw.sanitized(keyAlgorithms, contentEncryption) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // CompactSerialize serializes an object using the compact serialization format. | // CompactSerialize serializes an object using the compact serialization format. | ||||||
|  | @ -35,7 +35,7 @@ import ( | ||||||
| 	"reflect" | 	"reflect" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-jose/go-jose/v3/json" | 	"github.com/go-jose/go-jose/v4/json" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // rawJSONWebKey represents a public or private key in JWK format, used for parsing/serializing. | // rawJSONWebKey represents a public or private key in JWK format, used for parsing/serializing. | ||||||
|  | @ -266,7 +266,7 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) { | ||||||
| 
 | 
 | ||||||
| 	// x5t parameters are base64url-encoded SHA thumbprints | 	// x5t parameters are base64url-encoded SHA thumbprints | ||||||
| 	// See RFC 7517, Section 4.8, https://tools.ietf.org/html/rfc7517#section-4.8 | 	// See RFC 7517, Section 4.8, https://tools.ietf.org/html/rfc7517#section-4.8 | ||||||
| 	x5tSHA1bytes, err := base64URLDecode(raw.X5tSHA1) | 	x5tSHA1bytes, err := base64.RawURLEncoding.DecodeString(raw.X5tSHA1) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return errors.New("go-jose/go-jose: invalid JWK, x5t header has invalid encoding") | 		return errors.New("go-jose/go-jose: invalid JWK, x5t header has invalid encoding") | ||||||
| 	} | 	} | ||||||
|  | @ -286,7 +286,7 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) { | ||||||
| 
 | 
 | ||||||
| 	k.CertificateThumbprintSHA1 = x5tSHA1bytes | 	k.CertificateThumbprintSHA1 = x5tSHA1bytes | ||||||
| 
 | 
 | ||||||
| 	x5tSHA256bytes, err := base64URLDecode(raw.X5tSHA256) | 	x5tSHA256bytes, err := base64.RawURLEncoding.DecodeString(raw.X5tSHA256) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return errors.New("go-jose/go-jose: invalid JWK, x5t#S256 header has invalid encoding") | 		return errors.New("go-jose/go-jose: invalid JWK, x5t#S256 header has invalid encoding") | ||||||
| 	} | 	} | ||||||
|  | @ -23,7 +23,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-jose/go-jose/v3/json" | 	"github.com/go-jose/go-jose/v4/json" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // rawJSONWebSignature represents a raw JWS JSON object. Used for parsing/serializing. | // rawJSONWebSignature represents a raw JWS JSON object. Used for parsing/serializing. | ||||||
|  | @ -75,22 +75,41 @@ type Signature struct { | ||||||
| 	original  *rawSignatureInfo | 	original  *rawSignatureInfo | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ParseSigned parses a signed message in compact or JWS JSON Serialization format. | // ParseSigned parses a signed message in JWS Compact or JWS JSON Serialization. | ||||||
| func ParseSigned(signature string) (*JSONWebSignature, error) { | // | ||||||
|  | // https://datatracker.ietf.org/doc/html/rfc7515#section-7 | ||||||
|  | func ParseSigned( | ||||||
|  | 	signature string, | ||||||
|  | 	signatureAlgorithms []SignatureAlgorithm, | ||||||
|  | ) (*JSONWebSignature, error) { | ||||||
| 	signature = stripWhitespace(signature) | 	signature = stripWhitespace(signature) | ||||||
| 	if strings.HasPrefix(signature, "{") { | 	if strings.HasPrefix(signature, "{") { | ||||||
| 		return parseSignedFull(signature) | 		return ParseSignedJSON(signature, signatureAlgorithms) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return parseSignedCompact(signature, nil) | 	return parseSignedCompact(signature, nil, signatureAlgorithms) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ParseSignedCompact parses a message in JWS Compact Serialization. | ||||||
|  | // | ||||||
|  | // https://datatracker.ietf.org/doc/html/rfc7515#section-7.1 | ||||||
|  | func ParseSignedCompact( | ||||||
|  | 	signature string, | ||||||
|  | 	signatureAlgorithms []SignatureAlgorithm, | ||||||
|  | ) (*JSONWebSignature, error) { | ||||||
|  | 	return parseSignedCompact(signature, nil, signatureAlgorithms) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ParseDetached parses a signed message in compact serialization format with detached payload. | // ParseDetached parses a signed message in compact serialization format with detached payload. | ||||||
| func ParseDetached(signature string, payload []byte) (*JSONWebSignature, error) { | func ParseDetached( | ||||||
|  | 	signature string, | ||||||
|  | 	payload []byte, | ||||||
|  | 	signatureAlgorithms []SignatureAlgorithm, | ||||||
|  | ) (*JSONWebSignature, error) { | ||||||
| 	if payload == nil { | 	if payload == nil { | ||||||
| 		return nil, errors.New("go-jose/go-jose: nil payload") | 		return nil, errors.New("go-jose/go-jose: nil payload") | ||||||
| 	} | 	} | ||||||
| 	return parseSignedCompact(stripWhitespace(signature), payload) | 	return parseSignedCompact(stripWhitespace(signature), payload, signatureAlgorithms) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Get a header value | // Get a header value | ||||||
|  | @ -137,19 +156,36 @@ func (obj JSONWebSignature) computeAuthData(payload []byte, signature *Signature | ||||||
| 	return authData.Bytes(), nil | 	return authData.Bytes(), nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // parseSignedFull parses a message in full format. | // ParseSignedJSON parses a message in JWS JSON Serialization. | ||||||
| func parseSignedFull(input string) (*JSONWebSignature, error) { | // | ||||||
|  | // https://datatracker.ietf.org/doc/html/rfc7515#section-7.2 | ||||||
|  | func ParseSignedJSON( | ||||||
|  | 	input string, | ||||||
|  | 	signatureAlgorithms []SignatureAlgorithm, | ||||||
|  | ) (*JSONWebSignature, error) { | ||||||
| 	var parsed rawJSONWebSignature | 	var parsed rawJSONWebSignature | ||||||
| 	err := json.Unmarshal([]byte(input), &parsed) | 	err := json.Unmarshal([]byte(input), &parsed) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return parsed.sanitized() | 	return parsed.sanitized(signatureAlgorithms) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func containsSignatureAlgorithm(haystack []SignatureAlgorithm, needle SignatureAlgorithm) bool { | ||||||
|  | 	for _, algorithm := range haystack { | ||||||
|  | 		if algorithm == needle { | ||||||
|  | 			return true | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return false | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // sanitized produces a cleaned-up JWS object from the raw JSON. | // sanitized produces a cleaned-up JWS object from the raw JSON. | ||||||
| func (parsed *rawJSONWebSignature) sanitized() (*JSONWebSignature, error) { | func (parsed *rawJSONWebSignature) sanitized(signatureAlgorithms []SignatureAlgorithm) (*JSONWebSignature, error) { | ||||||
|  | 	if len(signatureAlgorithms) == 0 { | ||||||
|  | 		return nil, errors.New("go-jose/go-jose: no signature algorithms specified") | ||||||
|  | 	} | ||||||
| 	if parsed.Payload == nil { | 	if parsed.Payload == nil { | ||||||
| 		return nil, fmt.Errorf("go-jose/go-jose: missing payload in JWS message") | 		return nil, fmt.Errorf("go-jose/go-jose: missing payload in JWS message") | ||||||
| 	} | 	} | ||||||
|  | @ -198,6 +234,12 @@ func (parsed *rawJSONWebSignature) sanitized() (*JSONWebSignature, error) { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		alg := SignatureAlgorithm(signature.Header.Algorithm) | ||||||
|  | 		if !containsSignatureAlgorithm(signatureAlgorithms, alg) { | ||||||
|  | 			return nil, fmt.Errorf("go-jose/go-jose: unexpected signature algorithm %q; expected %q", | ||||||
|  | 				alg, signatureAlgorithms) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		if signature.header != nil { | 		if signature.header != nil { | ||||||
| 			signature.Unprotected, err = signature.header.sanitized() | 			signature.Unprotected, err = signature.header.sanitized() | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
|  | @ -241,6 +283,12 @@ func (parsed *rawJSONWebSignature) sanitized() (*JSONWebSignature, error) { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		alg := SignatureAlgorithm(obj.Signatures[i].Header.Algorithm) | ||||||
|  | 		if !containsSignatureAlgorithm(signatureAlgorithms, alg) { | ||||||
|  | 			return nil, fmt.Errorf("go-jose/go-jose: unexpected signature algorithm %q; expected %q", | ||||||
|  | 				alg, signatureAlgorithms) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		if obj.Signatures[i].header != nil { | 		if obj.Signatures[i].header != nil { | ||||||
| 			obj.Signatures[i].Unprotected, err = obj.Signatures[i].header.sanitized() | 			obj.Signatures[i].Unprotected, err = obj.Signatures[i].header.sanitized() | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
|  | @ -274,7 +322,11 @@ func (parsed *rawJSONWebSignature) sanitized() (*JSONWebSignature, error) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // parseSignedCompact parses a message in compact format. | // parseSignedCompact parses a message in compact format. | ||||||
| func parseSignedCompact(input string, payload []byte) (*JSONWebSignature, error) { | func parseSignedCompact( | ||||||
|  | 	input string, | ||||||
|  | 	payload []byte, | ||||||
|  | 	signatureAlgorithms []SignatureAlgorithm, | ||||||
|  | ) (*JSONWebSignature, error) { | ||||||
| 	parts := strings.Split(input, ".") | 	parts := strings.Split(input, ".") | ||||||
| 	if len(parts) != 3 { | 	if len(parts) != 3 { | ||||||
| 		return nil, fmt.Errorf("go-jose/go-jose: compact JWS format must have three parts") | 		return nil, fmt.Errorf("go-jose/go-jose: compact JWS format must have three parts") | ||||||
|  | @ -284,19 +336,19 @@ func parseSignedCompact(input string, payload []byte) (*JSONWebSignature, error) | ||||||
| 		return nil, fmt.Errorf("go-jose/go-jose: payload is not detached") | 		return nil, fmt.Errorf("go-jose/go-jose: payload is not detached") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	rawProtected, err := base64URLDecode(parts[0]) | 	rawProtected, err := base64.RawURLEncoding.DecodeString(parts[0]) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if payload == nil { | 	if payload == nil { | ||||||
| 		payload, err = base64URLDecode(parts[1]) | 		payload, err = base64.RawURLEncoding.DecodeString(parts[1]) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	signature, err := base64URLDecode(parts[2]) | 	signature, err := base64.RawURLEncoding.DecodeString(parts[2]) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|  | @ -306,7 +358,7 @@ func parseSignedCompact(input string, payload []byte) (*JSONWebSignature, error) | ||||||
| 		Protected: newBuffer(rawProtected), | 		Protected: newBuffer(rawProtected), | ||||||
| 		Signature: newBuffer(signature), | 		Signature: newBuffer(signature), | ||||||
| 	} | 	} | ||||||
| 	return raw.sanitized() | 	return raw.sanitized(signatureAlgorithms) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (obj JSONWebSignature) compactSerialize(detached bool) (string, error) { | func (obj JSONWebSignature) compactSerialize(detached bool) (string, error) { | ||||||
|  | @ -23,7 +23,7 @@ import ( | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-jose/go-jose/v3/json" | 	"github.com/go-jose/go-jose/v4/json" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // KeyAlgorithm represents a key management algorithm. | // KeyAlgorithm represents a key management algorithm. | ||||||
|  | @ -25,7 +25,7 @@ import ( | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-jose/go-jose/v3/json" | 	"github.com/go-jose/go-jose/v4/json" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // NonceSource represents a source of random nonces to go into JWS objects | // NonceSource represents a source of random nonces to go into JWS objects | ||||||
|  | @ -49,6 +49,11 @@ type Signer interface { | ||||||
| //   - JSONWebKey | //   - JSONWebKey | ||||||
| //   - []byte (an HMAC key) | //   - []byte (an HMAC key) | ||||||
| //   - Any type that satisfies the OpaqueSigner interface | //   - Any type that satisfies the OpaqueSigner interface | ||||||
|  | // | ||||||
|  | // If the key is an HMAC key, it must have at least as many bytes as the relevant hash output: | ||||||
|  | //   - HS256: 32 bytes | ||||||
|  | //   - HS384: 48 bytes | ||||||
|  | //   - HS512: 64 bytes | ||||||
| type SigningKey struct { | type SigningKey struct { | ||||||
| 	Algorithm SignatureAlgorithm | 	Algorithm SignatureAlgorithm | ||||||
| 	Key       interface{} | 	Key       interface{} | ||||||
|  | @ -355,6 +360,11 @@ func (ctx *genericSigner) Options() SignerOptions { | ||||||
| //   - JSONWebKey | //   - JSONWebKey | ||||||
| //   - []byte (an HMAC key) | //   - []byte (an HMAC key) | ||||||
| //   - Any type that implements the OpaqueVerifier interface. | //   - Any type that implements the OpaqueVerifier interface. | ||||||
|  | // | ||||||
|  | // If the key is an HMAC key, it must have at least as many bytes as the relevant hash output: | ||||||
|  | //   - HS256: 32 bytes | ||||||
|  | //   - HS384: 48 bytes | ||||||
|  | //   - HS512: 64 bytes | ||||||
| func (obj JSONWebSignature) Verify(verificationKey interface{}) ([]byte, error) { | func (obj JSONWebSignature) Verify(verificationKey interface{}) ([]byte, error) { | ||||||
| 	err := obj.DetachedVerify(obj.payload, verificationKey) | 	err := obj.DetachedVerify(obj.payload, verificationKey) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | @ -32,7 +32,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"golang.org/x/crypto/pbkdf2" | 	"golang.org/x/crypto/pbkdf2" | ||||||
| 
 | 
 | ||||||
| 	josecipher "github.com/go-jose/go-jose/v3/cipher" | 	josecipher "github.com/go-jose/go-jose/v4/cipher" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // RandReader is a cryptographically secure random number generator (stubbed out in tests). | // RandReader is a cryptographically secure random number generator (stubbed out in tests). | ||||||
|  | @ -454,7 +454,7 @@ func (ctx *symmetricKeyCipher) decryptKey(headers rawHeader, recipient *recipien | ||||||
| func (ctx symmetricMac) signPayload(payload []byte, alg SignatureAlgorithm) (Signature, error) { | func (ctx symmetricMac) signPayload(payload []byte, alg SignatureAlgorithm) (Signature, error) { | ||||||
| 	mac, err := ctx.hmac(payload, alg) | 	mac, err := ctx.hmac(payload, alg) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return Signature{}, errors.New("go-jose/go-jose: failed to compute hmac") | 		return Signature{}, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return Signature{ | 	return Signature{ | ||||||
|  | @ -486,12 +486,24 @@ func (ctx symmetricMac) verifyPayload(payload []byte, mac []byte, alg SignatureA | ||||||
| func (ctx symmetricMac) hmac(payload []byte, alg SignatureAlgorithm) ([]byte, error) { | func (ctx symmetricMac) hmac(payload []byte, alg SignatureAlgorithm) ([]byte, error) { | ||||||
| 	var hash func() hash.Hash | 	var hash func() hash.Hash | ||||||
| 
 | 
 | ||||||
|  | 	// https://datatracker.ietf.org/doc/html/rfc7518#section-3.2 | ||||||
|  | 	// A key of the same size as the hash output (for instance, 256 bits for | ||||||
|  | 	// "HS256") or larger MUST be used | ||||||
| 	switch alg { | 	switch alg { | ||||||
| 	case HS256: | 	case HS256: | ||||||
|  | 		if len(ctx.key)*8 < 256 { | ||||||
|  | 			return nil, ErrInvalidKeySize | ||||||
|  | 		} | ||||||
| 		hash = sha256.New | 		hash = sha256.New | ||||||
| 	case HS384: | 	case HS384: | ||||||
|  | 		if len(ctx.key)*8 < 384 { | ||||||
|  | 			return nil, ErrInvalidKeySize | ||||||
|  | 		} | ||||||
| 		hash = sha512.New384 | 		hash = sha512.New384 | ||||||
| 	case HS512: | 	case HS512: | ||||||
|  | 		if len(ctx.key)*8 < 512 { | ||||||
|  | 			return nil, ErrInvalidKeySize | ||||||
|  | 		} | ||||||
| 		hash = sha512.New | 		hash = sha512.New | ||||||
| 	default: | 	default: | ||||||
| 		return nil, ErrUnsupportedAlgorithm | 		return nil, ErrUnsupportedAlgorithm | ||||||
							
								
								
									
										14
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -150,8 +150,8 @@ github.com/containerd/cgroups/v3/cgroup1 | ||||||
| github.com/containerd/cgroups/v3/cgroup1/stats | github.com/containerd/cgroups/v3/cgroup1/stats | ||||||
| github.com/containerd/cgroups/v3/cgroup2 | github.com/containerd/cgroups/v3/cgroup2 | ||||||
| github.com/containerd/cgroups/v3/cgroup2/stats | github.com/containerd/cgroups/v3/cgroup2/stats | ||||||
| # github.com/coreos/go-oidc/v3 v3.9.0 | # github.com/coreos/go-oidc/v3 v3.10.0 | ||||||
| ## explicit; go 1.19 | ## explicit; go 1.21 | ||||||
| github.com/coreos/go-oidc/v3/oidc | github.com/coreos/go-oidc/v3/oidc | ||||||
| # github.com/coreos/go-systemd/v22 v22.3.2 | # github.com/coreos/go-systemd/v22 v22.3.2 | ||||||
| ## explicit; go 1.12 | ## explicit; go 1.12 | ||||||
|  | @ -227,11 +227,11 @@ github.com/go-errors/errors | ||||||
| # github.com/go-fed/httpsig v1.1.0 | # github.com/go-fed/httpsig v1.1.0 | ||||||
| ## explicit; go 1.13 | ## explicit; go 1.13 | ||||||
| github.com/go-fed/httpsig | github.com/go-fed/httpsig | ||||||
| # github.com/go-jose/go-jose/v3 v3.0.3 | # github.com/go-jose/go-jose/v4 v4.0.1 | ||||||
| ## explicit; go 1.12 | ## explicit; go 1.21 | ||||||
| github.com/go-jose/go-jose/v3 | github.com/go-jose/go-jose/v4 | ||||||
| github.com/go-jose/go-jose/v3/cipher | github.com/go-jose/go-jose/v4/cipher | ||||||
| github.com/go-jose/go-jose/v3/json | github.com/go-jose/go-jose/v4/json | ||||||
| # github.com/go-logr/logr v1.4.1 | # github.com/go-logr/logr v1.4.1 | ||||||
| ## explicit; go 1.18 | ## explicit; go 1.18 | ||||||
| github.com/go-logr/logr | github.com/go-logr/logr | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue