Merge pull request #1583 from dmcgowan/golem-integration-tests
Update docker integration tests to use golemmaster
						commit
						27e0be3e95
					
				| 
						 | 
					@ -1,46 +1,9 @@
 | 
				
			||||||
FROM debian:jessie
 | 
					FROM distribution/golem:0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MAINTAINER Docker Distribution Team <distribution@docker.com>
 | 
					MAINTAINER Docker Distribution Team <distribution@docker.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# compile and runtime deps
 | 
					RUN apk add --no-cache git
 | 
				
			||||||
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies
 | 
					 | 
				
			||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
 | 
					 | 
				
			||||||
        # For DIND
 | 
					 | 
				
			||||||
        ca-certificates \
 | 
					 | 
				
			||||||
        curl \
 | 
					 | 
				
			||||||
        iptables \
 | 
					 | 
				
			||||||
        procps \
 | 
					 | 
				
			||||||
        e2fsprogs \
 | 
					 | 
				
			||||||
        xz-utils \
 | 
					 | 
				
			||||||
        # For build
 | 
					 | 
				
			||||||
        build-essential \
 | 
					 | 
				
			||||||
        file \
 | 
					 | 
				
			||||||
        git \
 | 
					 | 
				
			||||||
        net-tools \ 
 | 
					 | 
				
			||||||
    && apt-get clean && rm -rf /var/lib/apt/lists/*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Install Docker
 | 
					ENV TMPDIR /var/lib/docker/tmp
 | 
				
			||||||
ENV VERSION 1.7.1
 | 
					 | 
				
			||||||
RUN curl -L -o /usr/local/bin/docker https://test.docker.com/builds/Linux/x86_64/docker-${VERSION} \
 | 
					 | 
				
			||||||
    && chmod +x /usr/local/bin/docker
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Install DIND
 | 
					 | 
				
			||||||
RUN curl -L -o /dind https://raw.githubusercontent.com/docker/docker/v1.8.1/hack/dind \
 | 
					 | 
				
			||||||
    && chmod +x /dind
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Install bats
 | 
					 | 
				
			||||||
RUN cd /usr/local/src/ \
 | 
					 | 
				
			||||||
    && git clone https://github.com/sstephenson/bats.git \
 | 
					 | 
				
			||||||
    && cd bats \
 | 
					 | 
				
			||||||
    && ./install.sh /usr/local
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Install docker-compose
 | 
					 | 
				
			||||||
RUN curl -L https://github.com/docker/compose/releases/download/1.3.3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose \
 | 
					 | 
				
			||||||
    && chmod +x /usr/local/bin/docker-compose
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN mkdir -p /go/src/github.com/docker/distribution
 | 
					 | 
				
			||||||
WORKDIR /go/src/github.com/docker/distribution/contrib/docker-integration
 | 
					WORKDIR /go/src/github.com/docker/distribution/contrib/docker-integration
 | 
				
			||||||
 | 
					 | 
				
			||||||
VOLUME /var/lib/docker
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENTRYPOINT ["/dind"]
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -121,18 +121,16 @@ bats -p .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Configurations
 | 
					## Configurations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Port | V2 | V1 | TLS | Authentication
 | 
					Port | V2 | TLS | Authentication
 | 
				
			||||||
--- | --- | --- | --- | ---
 | 
					--- | --- | --- | ---
 | 
				
			||||||
5000 | yes | yes | no | none
 | 
					5000 | yes | no | none
 | 
				
			||||||
5001 | no | yes | no | none
 | 
					5002 | yes | no | none
 | 
				
			||||||
5002 | yes | no | no | none
 | 
					5440 | yes | yes | none
 | 
				
			||||||
5011 | no | yes | yes | none
 | 
					5441 | yes | yes | basic (testuser/passpassword)
 | 
				
			||||||
5440 | yes | yes | yes | none
 | 
					5442 | yes | yes | TLS client
 | 
				
			||||||
5441 | yes | yes | yes | basic (testuser/passpassword)
 | 
					5443 | yes | yes | TLS client (no CA)
 | 
				
			||||||
5442 | yes | yes | yes | TLS client
 | 
					5444 | yes | yes | TLS client + basic (testuser/passpassword)
 | 
				
			||||||
5443 | yes | yes | yes | TLS client (no CA)
 | 
					5445 | yes | yes (no CA) | none
 | 
				
			||||||
5444 | yes | yes | yes | TLS client + basic (testuser/passpassword)
 | 
					5446 | yes | yes (no CA) | basic (testuser/passpassword)
 | 
				
			||||||
5445 | yes | yes | yes (no CA) | none
 | 
					5447 | yes | yes (no CA) | TLS client
 | 
				
			||||||
5446 | yes | yes | yes (no CA) | basic (testuser/passpassword)
 | 
					5448 | yes | yes (SSLv3) | none
 | 
				
			||||||
5447 | yes | yes | yes (no CA) | TLS client
 | 
					 | 
				
			||||||
5448 | yes | yes | yes (SSLv3) | none
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,7 @@ nginx:
 | 
				
			||||||
  build: "nginx"
 | 
					  build: "nginx"
 | 
				
			||||||
  ports:
 | 
					  ports:
 | 
				
			||||||
    - "5000:5000"
 | 
					    - "5000:5000"
 | 
				
			||||||
    - "5001:5001"
 | 
					 | 
				
			||||||
    - "5002:5002"
 | 
					    - "5002:5002"
 | 
				
			||||||
    - "5011:5011"
 | 
					 | 
				
			||||||
    - "5440:5440"
 | 
					    - "5440:5440"
 | 
				
			||||||
    - "5441:5441"
 | 
					    - "5441:5441"
 | 
				
			||||||
    - "5442:5442"
 | 
					    - "5442:5442"
 | 
				
			||||||
| 
						 | 
					@ -14,14 +12,71 @@ nginx:
 | 
				
			||||||
    - "5446:5446"
 | 
					    - "5446:5446"
 | 
				
			||||||
    - "5447:5447"
 | 
					    - "5447:5447"
 | 
				
			||||||
    - "5448:5448"
 | 
					    - "5448:5448"
 | 
				
			||||||
 | 
					    - "5554:5554"
 | 
				
			||||||
 | 
					    - "5555:5555"
 | 
				
			||||||
 | 
					    - "5556:5556"
 | 
				
			||||||
 | 
					    - "5557:5557"
 | 
				
			||||||
 | 
					    - "5558:5558"
 | 
				
			||||||
 | 
					    - "5559:5559"
 | 
				
			||||||
 | 
					    - "6666:6666"
 | 
				
			||||||
  links:
 | 
					  links:
 | 
				
			||||||
    - registryv1:registryv1
 | 
					 | 
				
			||||||
    - registryv2:registryv2
 | 
					    - registryv2:registryv2
 | 
				
			||||||
registryv1:
 | 
					    - malevolent:malevolent
 | 
				
			||||||
  image: registry:0.9.1
 | 
					    - registryv2token:registryv2token
 | 
				
			||||||
  ports:
 | 
					    - tokenserver:tokenserver
 | 
				
			||||||
    - "5000"
 | 
					    - registryv2tokenoauth:registryv2tokenoauth
 | 
				
			||||||
 | 
					    - tokenserveroauth:tokenserveroauth
 | 
				
			||||||
registryv2:
 | 
					registryv2:
 | 
				
			||||||
  build: "../../"
 | 
					  image: golem-distribution:latest
 | 
				
			||||||
  ports:
 | 
					  ports:
 | 
				
			||||||
    - "5000"
 | 
					    - "5000"
 | 
				
			||||||
 | 
					registryv2token:
 | 
				
			||||||
 | 
					  image: golem-distribution:latest
 | 
				
			||||||
 | 
					  ports:
 | 
				
			||||||
 | 
					    - "5000"
 | 
				
			||||||
 | 
					  volumes:
 | 
				
			||||||
 | 
					    - ./tokenserver/registry-config.yml:/etc/docker/registry/config.yml
 | 
				
			||||||
 | 
					    - ./tokenserver/certs/localregistry.cert:/etc/docker/registry/localregistry.cert
 | 
				
			||||||
 | 
					    - ./tokenserver/certs/localregistry.key:/etc/docker/registry/localregistry.key
 | 
				
			||||||
 | 
					    - ./tokenserver/certs/signing.cert:/etc/docker/registry/tokenbundle.pem
 | 
				
			||||||
 | 
					tokenserver:
 | 
				
			||||||
 | 
					  build: "tokenserver"
 | 
				
			||||||
 | 
					  command: "--debug -addr 0.0.0.0:5556 -issuer registry-test -passwd .htpasswd -tlscert tls.cert -tlskey tls.key -key sign.key -realm http://auth.localregistry:5556"
 | 
				
			||||||
 | 
					  ports:
 | 
				
			||||||
 | 
					    - "5556"
 | 
				
			||||||
 | 
					registryv2tokenoauth:
 | 
				
			||||||
 | 
					  image: golem-distribution:latest
 | 
				
			||||||
 | 
					  ports:
 | 
				
			||||||
 | 
					    - "5000"
 | 
				
			||||||
 | 
					  volumes:
 | 
				
			||||||
 | 
					    - ./tokenserver-oauth/registry-config.yml:/etc/docker/registry/config.yml
 | 
				
			||||||
 | 
					    - ./tokenserver-oauth/certs/localregistry.cert:/etc/docker/registry/localregistry.cert
 | 
				
			||||||
 | 
					    - ./tokenserver-oauth/certs/localregistry.key:/etc/docker/registry/localregistry.key
 | 
				
			||||||
 | 
					    - ./tokenserver-oauth/certs/signing.cert:/etc/docker/registry/tokenbundle.pem
 | 
				
			||||||
 | 
					tokenserveroauth:
 | 
				
			||||||
 | 
					  build: "tokenserver-oauth"
 | 
				
			||||||
 | 
					  command: "--debug -addr 0.0.0.0:5559 -issuer registry-test -passwd .htpasswd -tlscert tls.cert -tlskey tls.key -key sign.key -realm http://auth.localregistry:5559"
 | 
				
			||||||
 | 
					  ports:
 | 
				
			||||||
 | 
					    - "5559"
 | 
				
			||||||
 | 
					malevolent:
 | 
				
			||||||
 | 
					  image: "dmcgowan/malevolent:0.1.0"
 | 
				
			||||||
 | 
					  command: "-l 0.0.0.0:6666 -r http://registryv2:5000 -c /certs/localregistry.cert -k /certs/localregistry.key"
 | 
				
			||||||
 | 
					  links:
 | 
				
			||||||
 | 
					    - registryv2:registryv2
 | 
				
			||||||
 | 
					  volumes:
 | 
				
			||||||
 | 
					   - ./malevolent-certs:/certs:ro
 | 
				
			||||||
 | 
					  ports:
 | 
				
			||||||
 | 
					   - "6666"
 | 
				
			||||||
 | 
					docker:
 | 
				
			||||||
 | 
					  image: golem-dind:latest
 | 
				
			||||||
 | 
					  container_name: dockerdaemon
 | 
				
			||||||
 | 
					  command: "docker daemon --debug -s $DOCKER_GRAPHDRIVER"
 | 
				
			||||||
 | 
					  privileged: true
 | 
				
			||||||
 | 
					  environment:
 | 
				
			||||||
 | 
					    DOCKER_GRAPHDRIVER:
 | 
				
			||||||
 | 
					  volumes:
 | 
				
			||||||
 | 
					    - ./generated_certs.d:/etc/docker/certs.d
 | 
				
			||||||
 | 
					    - /var/lib/docker
 | 
				
			||||||
 | 
					  links:
 | 
				
			||||||
 | 
					    - nginx:localregistry
 | 
				
			||||||
 | 
					    - nginx:auth.localregistry
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw
 | 
				
			||||||
 | 
					NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX
 | 
				
			||||||
 | 
					GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx
 | 
				
			||||||
 | 
					BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT
 | 
				
			||||||
 | 
					wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO
 | 
				
			||||||
 | 
					cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY
 | 
				
			||||||
 | 
					AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR
 | 
				
			||||||
 | 
					sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE
 | 
				
			||||||
 | 
					CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p
 | 
				
			||||||
 | 
					y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk
 | 
				
			||||||
 | 
					o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN
 | 
				
			||||||
 | 
					NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G
 | 
				
			||||||
 | 
					Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/
 | 
				
			||||||
 | 
					BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z
 | 
				
			||||||
 | 
					PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU
 | 
				
			||||||
 | 
					lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU
 | 
				
			||||||
 | 
					GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna
 | 
				
			||||||
 | 
					XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi
 | 
				
			||||||
 | 
					QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK
 | 
				
			||||||
 | 
					UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w
 | 
				
			||||||
 | 
					Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH
 | 
				
			||||||
 | 
					sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF
 | 
				
			||||||
 | 
					AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib
 | 
				
			||||||
 | 
					KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA
 | 
				
			||||||
 | 
					KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w==
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw
 | 
				
			||||||
 | 
					NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX
 | 
				
			||||||
 | 
					GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx
 | 
				
			||||||
 | 
					BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT
 | 
				
			||||||
 | 
					wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO
 | 
				
			||||||
 | 
					cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY
 | 
				
			||||||
 | 
					AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR
 | 
				
			||||||
 | 
					sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE
 | 
				
			||||||
 | 
					CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p
 | 
				
			||||||
 | 
					y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk
 | 
				
			||||||
 | 
					o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN
 | 
				
			||||||
 | 
					NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G
 | 
				
			||||||
 | 
					Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/
 | 
				
			||||||
 | 
					BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z
 | 
				
			||||||
 | 
					PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU
 | 
				
			||||||
 | 
					lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU
 | 
				
			||||||
 | 
					GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna
 | 
				
			||||||
 | 
					XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi
 | 
				
			||||||
 | 
					QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK
 | 
				
			||||||
 | 
					UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w
 | 
				
			||||||
 | 
					Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH
 | 
				
			||||||
 | 
					sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF
 | 
				
			||||||
 | 
					AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib
 | 
				
			||||||
 | 
					KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA
 | 
				
			||||||
 | 
					KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w==
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw
 | 
				
			||||||
 | 
					NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX
 | 
				
			||||||
 | 
					GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx
 | 
				
			||||||
 | 
					BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT
 | 
				
			||||||
 | 
					wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO
 | 
				
			||||||
 | 
					cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY
 | 
				
			||||||
 | 
					AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR
 | 
				
			||||||
 | 
					sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE
 | 
				
			||||||
 | 
					CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p
 | 
				
			||||||
 | 
					y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk
 | 
				
			||||||
 | 
					o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN
 | 
				
			||||||
 | 
					NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G
 | 
				
			||||||
 | 
					Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/
 | 
				
			||||||
 | 
					BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z
 | 
				
			||||||
 | 
					PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU
 | 
				
			||||||
 | 
					lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU
 | 
				
			||||||
 | 
					GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna
 | 
				
			||||||
 | 
					XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi
 | 
				
			||||||
 | 
					QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK
 | 
				
			||||||
 | 
					UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w
 | 
				
			||||||
 | 
					Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH
 | 
				
			||||||
 | 
					sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF
 | 
				
			||||||
 | 
					AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib
 | 
				
			||||||
 | 
					KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA
 | 
				
			||||||
 | 
					KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w==
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9TCCAt+gAwIBAgIRAKbgxG1zgQI81ISaHxqLfpcwCwYJKoZIhvcNAQELMCYx
 | 
				
			||||||
 | 
					ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNTA1MjYy
 | 
				
			||||||
 | 
					MDU0MjJaFw0xODA1MTAyMDU0MjJaMBMxETAPBgNVBAoTCFF1aWNrVExTMIICIjAN
 | 
				
			||||||
 | 
					BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0Pc8DQ9AyvokFzm9v4a+29TCA3/
 | 
				
			||||||
 | 
					oARHbx59G+GOeGkrwG6ZWSZa/oNEJf3NJcU00V04k+fQuVoYBCgBXec9TEBvXa8M
 | 
				
			||||||
 | 
					WpLxp5U9LyYkv0AiSPfT2fJEE8mC+isMl+DbmgBcShwRXpeZQyIbEJhedS8mIjW/
 | 
				
			||||||
 | 
					MgJbdTylEq1UcZSLMuky+RWv10dw02fLuN1302OgfJRZooPug9rPYHHGbTB0o7II
 | 
				
			||||||
 | 
					hGlhziLVTKV9W1RP8Aop8TamSD85OV6shDaCvmMFr1YNDjcJJ5MGMaSmq0Krq9v4
 | 
				
			||||||
 | 
					nFwmuhOo8gvw/HhzYcxyMHnqMt6EgvbVWwXOoW7xiI3BEDFV33xgTp61bFpcdCai
 | 
				
			||||||
 | 
					gwUNzfe4/dHeCk/r3pteWOxH1bvcxUlmUB65wjRAwKuIX8Z0hC4ZlM30o+z11Aru
 | 
				
			||||||
 | 
					5QqKMrbSlOcd6yHT6NM1ZRyD+nbFORqB8W51g344eYl0zqQjxTQ0TNjJWDR2RWB/
 | 
				
			||||||
 | 
					Vlp5N+WRjDpsBscR8kt2Q1My17gWzvHfijGETZpbvmo2f+Keqc9fcfzkIe/VZFoO
 | 
				
			||||||
 | 
					nhRqhl2PSphcWdimk8Bwf5jC2uDAXWCdvVWvRSP4Xg8zpDwLhlsfLaWVH9n+WG3j
 | 
				
			||||||
 | 
					NLQ8EmHWaZlJSeW4BiDYsXmpTAkeLmwoS+pk2WL0TSQ7+S3DyrmTeVANHipNQZeB
 | 
				
			||||||
 | 
					twZJXIXR6Jc8hgsCAwEAAaM1MDMwDgYDVR0PAQH/BAQDAgCgMBMGA1UdJQQMMAoG
 | 
				
			||||||
 | 
					CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwCwYJKoZIhvcNAQELA4ICAQCl0cTLbLIn
 | 
				
			||||||
 | 
					XFuxreei+y6TlG2Z5XcxJ84mr8VLAaQMlJOLZV0O/suFBu9KqBuvPaHhGRnKE2uw
 | 
				
			||||||
 | 
					Vxdj9qaDdvmvuzi4jYyUA/sQuqq1+wHwGTadOi9r0IsL8OxzsG16OlhuXzhoQVdw
 | 
				
			||||||
 | 
					C9z1jad4HC7uihQ5yhl2ltAA+h5G0Sr1b9El2mx4p6BV+okmTvrqrmjshQb1GZwx
 | 
				
			||||||
 | 
					jG6SJ/uvjGf7rn09ZyYafF9ZDTMNodNXjW8orqGlFdXZLPFJ9agUFfwWfqD2lrtm
 | 
				
			||||||
 | 
					Fu+Ei0ZvKOtyzmh06eO2aGAHJCBTfcDM4tBKBKp0MOMoZkcQQDNpSyI12j6s1wtx
 | 
				
			||||||
 | 
					/1dC8QDyfFpZFXTbKn3q+6MpR+u5zqVquYjwP5DqGTvX0e1sLSthv7LRiOi0qHv1
 | 
				
			||||||
 | 
					bZ8JoWhRMNumui9mzwar5t20ExcWxGxizZY+t+OIj4kaAeRoKK6r6FrYBnTjM+iR
 | 
				
			||||||
 | 
					+xtML5UHPOSmYfNcai0Wn4T7hwpgnCJ+K7qGYjFUCarsINppQEwkxHAvuX+asc38
 | 
				
			||||||
 | 
					nA0wd7ByulkMJph0gP6j6LuJf28JODi6EQ7FcQItMeTuPrc+mpqJ4jP7vTTSJG7Q
 | 
				
			||||||
 | 
					wvqXLMgFQFR+2PG0s10hbY/Y/nwZAROfAs7ADED+EcDPTl/+XjVyo/aYIeOb/07W
 | 
				
			||||||
 | 
					SpS/cacZYUsSLgB4cWbxElcc/p7CW1PbOA==
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIJKQIBAAKCAgEAq0Pc8DQ9AyvokFzm9v4a+29TCA3/oARHbx59G+GOeGkrwG6Z
 | 
				
			||||||
 | 
					WSZa/oNEJf3NJcU00V04k+fQuVoYBCgBXec9TEBvXa8MWpLxp5U9LyYkv0AiSPfT
 | 
				
			||||||
 | 
					2fJEE8mC+isMl+DbmgBcShwRXpeZQyIbEJhedS8mIjW/MgJbdTylEq1UcZSLMuky
 | 
				
			||||||
 | 
					+RWv10dw02fLuN1302OgfJRZooPug9rPYHHGbTB0o7IIhGlhziLVTKV9W1RP8Aop
 | 
				
			||||||
 | 
					8TamSD85OV6shDaCvmMFr1YNDjcJJ5MGMaSmq0Krq9v4nFwmuhOo8gvw/HhzYcxy
 | 
				
			||||||
 | 
					MHnqMt6EgvbVWwXOoW7xiI3BEDFV33xgTp61bFpcdCaigwUNzfe4/dHeCk/r3pte
 | 
				
			||||||
 | 
					WOxH1bvcxUlmUB65wjRAwKuIX8Z0hC4ZlM30o+z11Aru5QqKMrbSlOcd6yHT6NM1
 | 
				
			||||||
 | 
					ZRyD+nbFORqB8W51g344eYl0zqQjxTQ0TNjJWDR2RWB/Vlp5N+WRjDpsBscR8kt2
 | 
				
			||||||
 | 
					Q1My17gWzvHfijGETZpbvmo2f+Keqc9fcfzkIe/VZFoOnhRqhl2PSphcWdimk8Bw
 | 
				
			||||||
 | 
					f5jC2uDAXWCdvVWvRSP4Xg8zpDwLhlsfLaWVH9n+WG3jNLQ8EmHWaZlJSeW4BiDY
 | 
				
			||||||
 | 
					sXmpTAkeLmwoS+pk2WL0TSQ7+S3DyrmTeVANHipNQZeBtwZJXIXR6Jc8hgsCAwEA
 | 
				
			||||||
 | 
					AQKCAgBJcL1iR5ROMtr0ZNIp4gciALfjQVV3gb48GR/e/9b/LWI0j3i0sOzeLN3h
 | 
				
			||||||
 | 
					SLda1fjzOn1Td1ma0dZwmdMUOF+hvhPDYZfzkwWLLkThXgLt/At3rMYstGWa8pN2
 | 
				
			||||||
 | 
					wVUSH7sri7IHmYedP3baQdrHP/9pUsGQc+m8ASTE3i+PFcKbPe5+818HTtRrhVgN
 | 
				
			||||||
 | 
					X3oNmPKUNCmSom7ZcKer5P1+Ruum0NuDgomCdkoZgfhjeKeLrVjl/wXDSQL/AhWA
 | 
				
			||||||
 | 
					02c4/sML7xx19nl8uf7z+Gj0ir1pvRouhRJTwnRc4KdWu+Yn7WLU8j2ZKf5St/as
 | 
				
			||||||
 | 
					zjnpYVEdCp0KSHccgXtobUZDEG2NCHmM6gR2j3qgoUAYjHyqPYlph2r5C47q+p4c
 | 
				
			||||||
 | 
					dDWkpwZwGiuYq9qpZj24X6BfppxExcX6AwOgFLZLp80IynwrMVxFsDd2J+KpKRQ1
 | 
				
			||||||
 | 
					+ZtYPcULwInF9MNi/dv84pxGOmmOaIUyjN8Sw4eqANU4T5uvTjUj7Ou6KYyfmxgG
 | 
				
			||||||
 | 
					y++vjpRN7tN1t1Hwde8SVWobvmhU+5SJVHV8INoJD7uciaevPo9pt833SQTtDXeY
 | 
				
			||||||
 | 
					PVBhOKO7thAxdUiqlU/1nGTXnf1VO6wAjaVYoTnP4tJ97WuTptwd2F5znVWHFGVh
 | 
				
			||||||
 | 
					lzJAzmFOuyCnRnInsf4n5EmWJnT7XF2CofQqAJ8NIddrU8GnQQKCAQEAyqWAiPMK
 | 
				
			||||||
 | 
					I/dMzlS7oJGlhbKZ5R4buc+EoZqtW7/8/S+0L6IaQvpEUilD+aDQyaxXjoKiQQL+
 | 
				
			||||||
 | 
					0UeeSmF/zU5BsOTpB8AuJUfYoUe0N+x7hO5eIcoCB/QWYX+iC3tCN4j1Iwt6VliV
 | 
				
			||||||
 | 
					PBYEiLUYPngSIHob/nK8UtgxrWQ3Fik9XJtWhePHrvMvDBalgCKdnyhuucGxKUjc
 | 
				
			||||||
 | 
					TtPcyMFdi0z4Kt/FAm+5u/v4ZkO909Ish0FrAqQ9t5ETfvTTTYKBmzny6/LSPTK9
 | 
				
			||||||
 | 
					0XIsHltuC1xG4vGQsES/Ph++Yj3Vn011FqvFZeBUHbfcQuB4h5wcb+90d4GU1kux
 | 
				
			||||||
 | 
					eabsHPIZKrlN4QKCAQEA2Fs8NAN5K9i7qbxZCJPi6DJV6XMznk6JVGb+qkkChCyq
 | 
				
			||||||
 | 
					IOXb95+c9CIpe6w2d3res3zvML3zbdz2Lyp9G0ve6tSlOaSnHeyIxZ5SRB+yQrcF
 | 
				
			||||||
 | 
					GXtsx370bOGjCi1/NH85kwKlMuROFJKleJQv8rKpIEo5aPSPV9Cc/VsUqBpvR+O0
 | 
				
			||||||
 | 
					U1HMv57P4yJA/ddw6imHJBl3jTmWBpK4B+LBsCbdypxdVoO8t32Lb2BqDTaPJfYU
 | 
				
			||||||
 | 
					RJUpjn/efLLoP6CWxYtqpUlY5tc7NJGAokl8Fo1mPn02klydvs09uiXE80Li2Hoc
 | 
				
			||||||
 | 
					/meMH07Lbt2VTw6iGNRX6VpIHEUZGZeS6rbAvO4ZawKCAQEAjOtGVPXdyWEB0kHu
 | 
				
			||||||
 | 
					MBzYY/7tMf0b/rymWNL9Vt5NiauQu8cYSBdNR21WzdLdHkFwqbOCLX9twA7zrnna
 | 
				
			||||||
 | 
					q+SNnfuxaShlbptls9HvKyySQMCaSRj3DJzaq3ZcM2vFgmUFQxeKPV1geeY9xOta
 | 
				
			||||||
 | 
					LqbExDzmFq2m9F1PPmqAPDL1bt6+7mCVzb1irB9be52WysUNKrPdBP6b5V1DHYAK
 | 
				
			||||||
 | 
					EwK1WOs/TxBusqDn/gWBjjmLqYr+ZVndaTfDvPd3sWDdzBoiKZ40QUZ15Z5lu76M
 | 
				
			||||||
 | 
					6e2DhfHCUjGcZBEjDaI+WYc9s0REAzJajEf9Lax3ZKZUyCpWbXx5CgSdKCHB8+cP
 | 
				
			||||||
 | 
					RTyTQQKCAQEAsxx8r5a8hocLfQ43Kvm7HH0nUHeVoRXlbOFDLNf6ZE/RnCCOxOX3
 | 
				
			||||||
 | 
					esiZTRAZmzo2CaOBJPnr/+SwTgW/woxCBGh8TEc6LnS2GdviwRD4c3CuoRTjzhgU
 | 
				
			||||||
 | 
					49q8Ld3SdDRrBoBnIMWOuktY/4S2WRZ9GwU3l+L2lD1Y6gmwBSa1P2+Lxnpupagk
 | 
				
			||||||
 | 
					9CVUZpEnokM05LbMmTa2M8Tc43Je5KSYcnaWctvmrIUbnN3VjhC/2y5oQwq1d4n2
 | 
				
			||||||
 | 
					N4eo65vXlbzAUgtxtNEz62YVdsSdHNJ8dXkVZ3+S+/VPh75i2PxjbdFSFW7Futlx
 | 
				
			||||||
 | 
					YtvAEs3LdgC8squSDQ1LJTutXfBjiUUX9wKCAQBiCMre86tLyJu6Qb6X1cRAwO7m
 | 
				
			||||||
 | 
					4kyGzIUtijXko6mWxb4X/usVvzhSaNVYbHbMZXjX+J5vhBOul+RmQ3EY6nw0H2z8
 | 
				
			||||||
 | 
					9D4z/rnQVqeb0uvIeUhBPni+s4fS4bA92M6Ie5bhiOSF2JjjJr38BFnTZARE7C+7
 | 
				
			||||||
 | 
					ZII7z2c0eQz/wAAt9fWWroAB2mIm6wxq0LNij2NoE0iq6k2xJE1/k8qhXpsN0zAv
 | 
				
			||||||
 | 
					bjG72Q7WryBeK/eIDK9e5wGlfLVDOx2Evlcaj70oJxuoRh57e8fCYy8huJQT+Wlx
 | 
				
			||||||
 | 
					Qw4zhxiyzAMq8SEqFsm8dVO4Bu2FwzmmehA80ieSb+si7JZU92xGDT394Im2
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw
 | 
				
			||||||
 | 
					NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX
 | 
				
			||||||
 | 
					GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx
 | 
				
			||||||
 | 
					BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT
 | 
				
			||||||
 | 
					wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO
 | 
				
			||||||
 | 
					cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY
 | 
				
			||||||
 | 
					AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR
 | 
				
			||||||
 | 
					sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE
 | 
				
			||||||
 | 
					CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p
 | 
				
			||||||
 | 
					y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk
 | 
				
			||||||
 | 
					o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN
 | 
				
			||||||
 | 
					NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G
 | 
				
			||||||
 | 
					Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/
 | 
				
			||||||
 | 
					BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z
 | 
				
			||||||
 | 
					PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU
 | 
				
			||||||
 | 
					lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU
 | 
				
			||||||
 | 
					GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna
 | 
				
			||||||
 | 
					XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi
 | 
				
			||||||
 | 
					QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK
 | 
				
			||||||
 | 
					UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w
 | 
				
			||||||
 | 
					Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH
 | 
				
			||||||
 | 
					sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF
 | 
				
			||||||
 | 
					AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib
 | 
				
			||||||
 | 
					KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA
 | 
				
			||||||
 | 
					KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w==
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9DCCAt6gAwIBAgIQb58oJ+9SvWUCcYWA+L1oiTALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw
 | 
				
			||||||
 | 
					NTUwMFoXDTE4MDUxMDIwNTUwMFowEzERMA8GA1UEChMIUXVpY2tUTFMwggIiMA0G
 | 
				
			||||||
 | 
					CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDDmOL3EhBm4So3agPMmF0z1+/nPlrE
 | 
				
			||||||
 | 
					xoG7x0HYPk5CP3PF3TNVk3ArBPkMzge0/895a4ZEb9j+LUQEjOZa/ZwuLmSjfJSt
 | 
				
			||||||
 | 
					9xTXI1ldp8KasyzQZjC33/bUj7FGxGzgbHyJrGGBoH2W5HdswH4WzhCnGTslyiDo
 | 
				
			||||||
 | 
					VN4hklJ7gr+Geq3TPf8Eji+1L71MOrUyoNp7BaQBQT/gKxK0nV+ZuSk6eaiu+om7
 | 
				
			||||||
 | 
					slp3x4bc21o7eIMmNXggJP6p9fMDctnioKhAPcm+5ADiFYSjivLeUQ85VkMTpmdU
 | 
				
			||||||
 | 
					yvq6ziK3Ls6erD+S3xLvcHYAaeu84qLd7qdPwkHMTQsDpO4vPMIwL8piMzZV+kwL
 | 
				
			||||||
 | 
					Bq+5xk5//FwnQH0pSo2Nr4vRn+DITZc3GKyGUJQoOUgAdfGNskTt8GXa4IsHn5iw
 | 
				
			||||||
 | 
					zr12vGaxb//GDm0RLHnh7NVbD8xxDHIJq+fJNFb7MdXa8v31PYebkWuaPhYt6HQC
 | 
				
			||||||
 | 
					I/D81zwcJIOGfzNITS2ifM5tvMaUXireo4pLC2v2aSY6RrPq1owlB6jGFwGwZSAF
 | 
				
			||||||
 | 
					O6rxSqWO1gLfhJLzqcw/NjWnO7nCZEs/iKgAa22K2CtTt3dDMTvSBYKdkRe/FYQC
 | 
				
			||||||
 | 
					MCa7MFJSaH85pYRzoDN4IuVpvROrtuQmlI47oZzb64uCPoA4A8AN+k8iysqITsgK
 | 
				
			||||||
 | 
					1m8ePPXhbu4YlwIDAQABozUwMzAOBgNVHQ8BAf8EBAMCAKAwEwYDVR0lBAwwCgYI
 | 
				
			||||||
 | 
					KwYBBQUHAwIwDAYDVR0TAQH/BAIwADALBgkqhkiG9w0BAQsDggIBALSgrCdEQd3I
 | 
				
			||||||
 | 
					vb/FNkNZkAwdjfBD6j7ZtPBwvjEiiyNTx9hOLBGvbey7kr0HtW0KkLWsdRmCc+3z
 | 
				
			||||||
 | 
					ev9I5VjDOtpiqrvuAA1wRBaL3UzGyj/eFjPJpvkfJi8zjkIZ2y18QG3yJ6Eqy6dD
 | 
				
			||||||
 | 
					0aIQAHl9hkXMOVrf364gf0p7EoOGtSlfQ56yIGDPTFKKiy+Al0S42p17lhI4coz9
 | 
				
			||||||
 | 
					zGXE1/SiNeZgdsk4zHDqhzzBp8foZuSL1sGcIXHkG8RtqZ1WvCyIPYRyIjIKZcXd
 | 
				
			||||||
 | 
					JCEM//EbgDzQ7VE/jm+hIlYfPjM7fmUzsfii+bIrp/0HGEU3HN++LsA6eQOwWPa/
 | 
				
			||||||
 | 
					PrxKPP36EVXb72QK8C3lmz6y+CHhuuAm0C1b1qmYVEs4eRE21S8eB2l0KUlfOecf
 | 
				
			||||||
 | 
					xZ1LWp1agKt6fGqRgcsR3/qO27l8W7hlbFNPeOTgr6NQQkEMRW5OxbnZ58ULXqr3
 | 
				
			||||||
 | 
					gWh8Na3D4+3j53035UBBQUMmeeFfWCvtr5n0+6BTAi62Cwwu9QQQBM/2f9/9K+B7
 | 
				
			||||||
 | 
					cW0xPYtczm+VwJL6/rDtNN9xPWitxab1dkZp2XcHG3VWtYvE2R2EtEoKvvCLPggx
 | 
				
			||||||
 | 
					zcafsZfcD1wlvtQF7YjykGJnMa0SB0GBl9SQtvGc8PkP39yXHqXZhIoo3fp4qm9v
 | 
				
			||||||
 | 
					RfbdpOr8p/Ks34ZqQPukFwpM1s/6aicF
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIJKQIBAAKCAgEAw5ji9xIQZuEqN2oDzJhdM9fv5z5axMaBu8dB2D5OQj9zxd0z
 | 
				
			||||||
 | 
					VZNwKwT5DM4HtP/PeWuGRG/Y/i1EBIzmWv2cLi5ko3yUrfcU1yNZXafCmrMs0GYw
 | 
				
			||||||
 | 
					t9/21I+xRsRs4Gx8iaxhgaB9luR3bMB+Fs4Qpxk7Jcog6FTeIZJSe4K/hnqt0z3/
 | 
				
			||||||
 | 
					BI4vtS+9TDq1MqDaewWkAUE/4CsStJ1fmbkpOnmorvqJu7Jad8eG3NtaO3iDJjV4
 | 
				
			||||||
 | 
					ICT+qfXzA3LZ4qCoQD3JvuQA4hWEo4ry3lEPOVZDE6ZnVMr6us4ity7Onqw/kt8S
 | 
				
			||||||
 | 
					73B2AGnrvOKi3e6nT8JBzE0LA6TuLzzCMC/KYjM2VfpMCwavucZOf/xcJ0B9KUqN
 | 
				
			||||||
 | 
					ja+L0Z/gyE2XNxishlCUKDlIAHXxjbJE7fBl2uCLB5+YsM69drxmsW//xg5tESx5
 | 
				
			||||||
 | 
					4ezVWw/McQxyCavnyTRW+zHV2vL99T2Hm5Frmj4WLeh0AiPw/Nc8HCSDhn8zSE0t
 | 
				
			||||||
 | 
					onzObbzGlF4q3qOKSwtr9mkmOkaz6taMJQeoxhcBsGUgBTuq8UqljtYC34SS86nM
 | 
				
			||||||
 | 
					PzY1pzu5wmRLP4ioAGttitgrU7d3QzE70gWCnZEXvxWEAjAmuzBSUmh/OaWEc6Az
 | 
				
			||||||
 | 
					eCLlab0Tq7bkJpSOO6Gc2+uLgj6AOAPADfpPIsrKiE7ICtZvHjz14W7uGJcCAwEA
 | 
				
			||||||
 | 
					AQKCAgBmIvmxpp8l+cH/ub5OIenZXpMJn4fqZPXtxjjd4HshIN0ln0JlF15lOG2M
 | 
				
			||||||
 | 
					gDGKFGKUts8gAX/ACocQETtgnDnn65XlwPIqfXFGflD2FNoLyjBGinY6LhtIF9is
 | 
				
			||||||
 | 
					aXmpHz1Q7tDjzZiHKLor8cBlzCjp+MToEMpqR5bO1Qd5M2cro/gM7Lyz9kN3S3x/
 | 
				
			||||||
 | 
					x9BCpbgwsVtYxGfEePmFkwAO159tx4WMCYvOlW2kSm5j+a7+iwmA9D7MGkVZHvNN
 | 
				
			||||||
 | 
					A7Y/H0F8ekdVBN5pMG9Yrv/vk0ht2lugcS5YGr4eufFq0mhWdv+jhBTxLzqPMMBG
 | 
				
			||||||
 | 
					m9oMJcj8XyXYtwpfVsqBpCqK2wnEnv4Kf0rZzBU706nI2mjPXx3dL+5qo8uQJKNp
 | 
				
			||||||
 | 
					mxoS7vmHV5RIJgtdvyzGFHjdfu1leowhV+Jy9jWzMw4wlnmlxsfDECf5RoSf2XGt
 | 
				
			||||||
 | 
					SMGJb0dbJKae+W4MfNUFsgAWMZk3h3KF8AHHe44OpDbQeoh3JLnkWSG0oS3CR0ch
 | 
				
			||||||
 | 
					68TzCy0SZZEZ9IS+I6o5WVpwWfReCQ5NjaKipWcpiJvxg+Dc3GG3QcVXVz2gGrJh
 | 
				
			||||||
 | 
					g9v0v6eyeOJ32QGvvP7THFBjpWeeHlXT8Yz6hFcPrvErEZ029TEmhg8aLWBGfsR5
 | 
				
			||||||
 | 
					F1bazdbqvOSEB9vBAAaddNnEDG9Rl8EmC4WdsnVgYUw1J7gfQQKCAQEA9DKjD9eN
 | 
				
			||||||
 | 
					CrUl/2YfSm2WaFhYci74XcHDVeAXN2SbOyKbMIqk3aOFQNRAsLRnwPkdiLtuqeDK
 | 
				
			||||||
 | 
					BafrfLTCORHfFdYKnUzmuekESNLckN9VyLztgqOqNAv3LD6GmSHBaJEnUyniLxOL
 | 
				
			||||||
 | 
					k0wMEBIsEQw7Fb4blM2REYJ3ZzMFmgpRGnIX8KcxhW9XgSrnqMLO0w6mVxjo7xzd
 | 
				
			||||||
 | 
					813nCcNrGhySM/EzKYtTNHy2JZmMH5QFHaIj67KklO7VeEZX5U+TKveBEt4rmHqs
 | 
				
			||||||
 | 
					Ndqf/djSs8vu1xse82pVRxMXX2mhDLmwjUjPgWYxUL92jTiyJhE7GxpVB/yHgF1J
 | 
				
			||||||
 | 
					Ecb47MDahoNKkQKCAQEAzQzvCOA77IQpGO117GcMqcjzwEUhTytojFBT+s5mHfzk
 | 
				
			||||||
 | 
					dYr5TyN86LQ7/GktNoJ5oRvD9UGRSul1OGneivqtWj6mv6/Zvfzacx8NXY4MYFs1
 | 
				
			||||||
 | 
					nEr3Gr7orVFIzD2x7nMPG2G6+J6hZ1rhpnZ9Hprf5G41sHIJxHJ9wTYSUAmFh8bv
 | 
				
			||||||
 | 
					FiJqF90bSq/E5hgjphtX6wZWeZYspzc/5+IrJ/I0nqoxV3rjUy234zlzKJAV10sV
 | 
				
			||||||
 | 
					5oVgxLLQsUujkHp/Da+ij2aTv1Za8y3PTJ7MAHYgdpa5l/4U9MnPUEB2REBCI1NN
 | 
				
			||||||
 | 
					TqxnViwD0xgsvxfb79UzruLJIYOCKvfOumlutXM0pwKCAQBUIMXQhWAP2kyW6mXJ
 | 
				
			||||||
 | 
					TGvO0vDVlZz3H/Pdt/AHo19fRhLU7E7UFKupo/YNanl8H9au7nO3jrvKqwkT02o+
 | 
				
			||||||
 | 
					IwwKB81sV7v9PGu/cvWN64MwPvZMVXojqCOlWH0icGCjV66Glh1YPpGNU1ushbYs
 | 
				
			||||||
 | 
					wVvxp6b04sUhlSLxqMA7S2aZh8j7nX4QDEXHODLLDyIV0Cw6QViuV/GXEDiyQmK5
 | 
				
			||||||
 | 
					gjJUNrp7i4ZExNozpeyCTIpepSde4hKVRJrCbumFFJ8M5GvRRj0asNh3TTRlTbd5
 | 
				
			||||||
 | 
					Pb6w2KUXEwECFW+t7UQQkEBkzDrAx6YhvXRoPqoRN0p3keDNeZBtBrZPq47CccZX
 | 
				
			||||||
 | 
					JRAhAoIBAQCJ/DgnGu54XP9i/PksGrSU1Nvi+SJPKoDyW2QIFTj22SXMS7c1oEYA
 | 
				
			||||||
 | 
					OrlbRFPeqLK8zfhyZKsnZC8zxVqy37okTqDbwbSfezZt3emamWqOtRJAmNnsr6fY
 | 
				
			||||||
 | 
					aii4+JNySQ9Td9LgV69549iRso7EN6iPCfMrR7J29izWBlMQdTfchOyDUqleYbZp
 | 
				
			||||||
 | 
					7hpsVLY4o5HoYJ10uLBX3oAsxTARc5YhZ5pIqjOr18o1KIXsN/napXaZaAwUkdiK
 | 
				
			||||||
 | 
					VsI9CZHSXezg30Bxs+UEXEFx6DKT5Oo3o3pFZAAqMlxGPvrXNv7K0tXlKXNos7nn
 | 
				
			||||||
 | 
					Jg+GkMG6hRiAibCb0umXjKcbHrQXeu1lAoIBAQDcRBsy6cSQXMSu6+PyroH+2DvR
 | 
				
			||||||
 | 
					4fuiMfSrUNjv+9K8gtjYLetrZUvRuFT3A/KzDrALKyTFTGJk3YlpTaC5iNKd+QK8
 | 
				
			||||||
 | 
					6RBJRYeYV16fpX/2ak/8MgfB2gdW//pE0eFjw+qakcUXmo957m7dUXbOrw1VNAET
 | 
				
			||||||
 | 
					LVBeVnml+2FUj0sTXGwHKcINPR78PWZ8i1ka9DptnKLBNeA+x+OMkCA88RJJegSk
 | 
				
			||||||
 | 
					/rgDDV52z4fJHQJh9TZ7zLAXxGgDFYLGPTrdeT+D/owuPXF+SCP4pMtVnwbQgH9G
 | 
				
			||||||
 | 
					dfQ9bb7G14vAeu/kEkFdGFEreS09BOTRbTfzFjFdDvSV4JyOXe9i/sUDxf9R
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw
 | 
				
			||||||
 | 
					NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX
 | 
				
			||||||
 | 
					GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx
 | 
				
			||||||
 | 
					BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT
 | 
				
			||||||
 | 
					wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO
 | 
				
			||||||
 | 
					cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY
 | 
				
			||||||
 | 
					AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR
 | 
				
			||||||
 | 
					sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE
 | 
				
			||||||
 | 
					CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p
 | 
				
			||||||
 | 
					y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk
 | 
				
			||||||
 | 
					o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN
 | 
				
			||||||
 | 
					NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G
 | 
				
			||||||
 | 
					Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/
 | 
				
			||||||
 | 
					BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z
 | 
				
			||||||
 | 
					PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU
 | 
				
			||||||
 | 
					lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU
 | 
				
			||||||
 | 
					GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna
 | 
				
			||||||
 | 
					XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi
 | 
				
			||||||
 | 
					QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK
 | 
				
			||||||
 | 
					UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w
 | 
				
			||||||
 | 
					Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH
 | 
				
			||||||
 | 
					sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF
 | 
				
			||||||
 | 
					AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib
 | 
				
			||||||
 | 
					KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA
 | 
				
			||||||
 | 
					KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w==
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9TCCAt+gAwIBAgIRAKbgxG1zgQI81ISaHxqLfpcwCwYJKoZIhvcNAQELMCYx
 | 
				
			||||||
 | 
					ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNTA1MjYy
 | 
				
			||||||
 | 
					MDU0MjJaFw0xODA1MTAyMDU0MjJaMBMxETAPBgNVBAoTCFF1aWNrVExTMIICIjAN
 | 
				
			||||||
 | 
					BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0Pc8DQ9AyvokFzm9v4a+29TCA3/
 | 
				
			||||||
 | 
					oARHbx59G+GOeGkrwG6ZWSZa/oNEJf3NJcU00V04k+fQuVoYBCgBXec9TEBvXa8M
 | 
				
			||||||
 | 
					WpLxp5U9LyYkv0AiSPfT2fJEE8mC+isMl+DbmgBcShwRXpeZQyIbEJhedS8mIjW/
 | 
				
			||||||
 | 
					MgJbdTylEq1UcZSLMuky+RWv10dw02fLuN1302OgfJRZooPug9rPYHHGbTB0o7II
 | 
				
			||||||
 | 
					hGlhziLVTKV9W1RP8Aop8TamSD85OV6shDaCvmMFr1YNDjcJJ5MGMaSmq0Krq9v4
 | 
				
			||||||
 | 
					nFwmuhOo8gvw/HhzYcxyMHnqMt6EgvbVWwXOoW7xiI3BEDFV33xgTp61bFpcdCai
 | 
				
			||||||
 | 
					gwUNzfe4/dHeCk/r3pteWOxH1bvcxUlmUB65wjRAwKuIX8Z0hC4ZlM30o+z11Aru
 | 
				
			||||||
 | 
					5QqKMrbSlOcd6yHT6NM1ZRyD+nbFORqB8W51g344eYl0zqQjxTQ0TNjJWDR2RWB/
 | 
				
			||||||
 | 
					Vlp5N+WRjDpsBscR8kt2Q1My17gWzvHfijGETZpbvmo2f+Keqc9fcfzkIe/VZFoO
 | 
				
			||||||
 | 
					nhRqhl2PSphcWdimk8Bwf5jC2uDAXWCdvVWvRSP4Xg8zpDwLhlsfLaWVH9n+WG3j
 | 
				
			||||||
 | 
					NLQ8EmHWaZlJSeW4BiDYsXmpTAkeLmwoS+pk2WL0TSQ7+S3DyrmTeVANHipNQZeB
 | 
				
			||||||
 | 
					twZJXIXR6Jc8hgsCAwEAAaM1MDMwDgYDVR0PAQH/BAQDAgCgMBMGA1UdJQQMMAoG
 | 
				
			||||||
 | 
					CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwCwYJKoZIhvcNAQELA4ICAQCl0cTLbLIn
 | 
				
			||||||
 | 
					XFuxreei+y6TlG2Z5XcxJ84mr8VLAaQMlJOLZV0O/suFBu9KqBuvPaHhGRnKE2uw
 | 
				
			||||||
 | 
					Vxdj9qaDdvmvuzi4jYyUA/sQuqq1+wHwGTadOi9r0IsL8OxzsG16OlhuXzhoQVdw
 | 
				
			||||||
 | 
					C9z1jad4HC7uihQ5yhl2ltAA+h5G0Sr1b9El2mx4p6BV+okmTvrqrmjshQb1GZwx
 | 
				
			||||||
 | 
					jG6SJ/uvjGf7rn09ZyYafF9ZDTMNodNXjW8orqGlFdXZLPFJ9agUFfwWfqD2lrtm
 | 
				
			||||||
 | 
					Fu+Ei0ZvKOtyzmh06eO2aGAHJCBTfcDM4tBKBKp0MOMoZkcQQDNpSyI12j6s1wtx
 | 
				
			||||||
 | 
					/1dC8QDyfFpZFXTbKn3q+6MpR+u5zqVquYjwP5DqGTvX0e1sLSthv7LRiOi0qHv1
 | 
				
			||||||
 | 
					bZ8JoWhRMNumui9mzwar5t20ExcWxGxizZY+t+OIj4kaAeRoKK6r6FrYBnTjM+iR
 | 
				
			||||||
 | 
					+xtML5UHPOSmYfNcai0Wn4T7hwpgnCJ+K7qGYjFUCarsINppQEwkxHAvuX+asc38
 | 
				
			||||||
 | 
					nA0wd7ByulkMJph0gP6j6LuJf28JODi6EQ7FcQItMeTuPrc+mpqJ4jP7vTTSJG7Q
 | 
				
			||||||
 | 
					wvqXLMgFQFR+2PG0s10hbY/Y/nwZAROfAs7ADED+EcDPTl/+XjVyo/aYIeOb/07W
 | 
				
			||||||
 | 
					SpS/cacZYUsSLgB4cWbxElcc/p7CW1PbOA==
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIJKQIBAAKCAgEAq0Pc8DQ9AyvokFzm9v4a+29TCA3/oARHbx59G+GOeGkrwG6Z
 | 
				
			||||||
 | 
					WSZa/oNEJf3NJcU00V04k+fQuVoYBCgBXec9TEBvXa8MWpLxp5U9LyYkv0AiSPfT
 | 
				
			||||||
 | 
					2fJEE8mC+isMl+DbmgBcShwRXpeZQyIbEJhedS8mIjW/MgJbdTylEq1UcZSLMuky
 | 
				
			||||||
 | 
					+RWv10dw02fLuN1302OgfJRZooPug9rPYHHGbTB0o7IIhGlhziLVTKV9W1RP8Aop
 | 
				
			||||||
 | 
					8TamSD85OV6shDaCvmMFr1YNDjcJJ5MGMaSmq0Krq9v4nFwmuhOo8gvw/HhzYcxy
 | 
				
			||||||
 | 
					MHnqMt6EgvbVWwXOoW7xiI3BEDFV33xgTp61bFpcdCaigwUNzfe4/dHeCk/r3pte
 | 
				
			||||||
 | 
					WOxH1bvcxUlmUB65wjRAwKuIX8Z0hC4ZlM30o+z11Aru5QqKMrbSlOcd6yHT6NM1
 | 
				
			||||||
 | 
					ZRyD+nbFORqB8W51g344eYl0zqQjxTQ0TNjJWDR2RWB/Vlp5N+WRjDpsBscR8kt2
 | 
				
			||||||
 | 
					Q1My17gWzvHfijGETZpbvmo2f+Keqc9fcfzkIe/VZFoOnhRqhl2PSphcWdimk8Bw
 | 
				
			||||||
 | 
					f5jC2uDAXWCdvVWvRSP4Xg8zpDwLhlsfLaWVH9n+WG3jNLQ8EmHWaZlJSeW4BiDY
 | 
				
			||||||
 | 
					sXmpTAkeLmwoS+pk2WL0TSQ7+S3DyrmTeVANHipNQZeBtwZJXIXR6Jc8hgsCAwEA
 | 
				
			||||||
 | 
					AQKCAgBJcL1iR5ROMtr0ZNIp4gciALfjQVV3gb48GR/e/9b/LWI0j3i0sOzeLN3h
 | 
				
			||||||
 | 
					SLda1fjzOn1Td1ma0dZwmdMUOF+hvhPDYZfzkwWLLkThXgLt/At3rMYstGWa8pN2
 | 
				
			||||||
 | 
					wVUSH7sri7IHmYedP3baQdrHP/9pUsGQc+m8ASTE3i+PFcKbPe5+818HTtRrhVgN
 | 
				
			||||||
 | 
					X3oNmPKUNCmSom7ZcKer5P1+Ruum0NuDgomCdkoZgfhjeKeLrVjl/wXDSQL/AhWA
 | 
				
			||||||
 | 
					02c4/sML7xx19nl8uf7z+Gj0ir1pvRouhRJTwnRc4KdWu+Yn7WLU8j2ZKf5St/as
 | 
				
			||||||
 | 
					zjnpYVEdCp0KSHccgXtobUZDEG2NCHmM6gR2j3qgoUAYjHyqPYlph2r5C47q+p4c
 | 
				
			||||||
 | 
					dDWkpwZwGiuYq9qpZj24X6BfppxExcX6AwOgFLZLp80IynwrMVxFsDd2J+KpKRQ1
 | 
				
			||||||
 | 
					+ZtYPcULwInF9MNi/dv84pxGOmmOaIUyjN8Sw4eqANU4T5uvTjUj7Ou6KYyfmxgG
 | 
				
			||||||
 | 
					y++vjpRN7tN1t1Hwde8SVWobvmhU+5SJVHV8INoJD7uciaevPo9pt833SQTtDXeY
 | 
				
			||||||
 | 
					PVBhOKO7thAxdUiqlU/1nGTXnf1VO6wAjaVYoTnP4tJ97WuTptwd2F5znVWHFGVh
 | 
				
			||||||
 | 
					lzJAzmFOuyCnRnInsf4n5EmWJnT7XF2CofQqAJ8NIddrU8GnQQKCAQEAyqWAiPMK
 | 
				
			||||||
 | 
					I/dMzlS7oJGlhbKZ5R4buc+EoZqtW7/8/S+0L6IaQvpEUilD+aDQyaxXjoKiQQL+
 | 
				
			||||||
 | 
					0UeeSmF/zU5BsOTpB8AuJUfYoUe0N+x7hO5eIcoCB/QWYX+iC3tCN4j1Iwt6VliV
 | 
				
			||||||
 | 
					PBYEiLUYPngSIHob/nK8UtgxrWQ3Fik9XJtWhePHrvMvDBalgCKdnyhuucGxKUjc
 | 
				
			||||||
 | 
					TtPcyMFdi0z4Kt/FAm+5u/v4ZkO909Ish0FrAqQ9t5ETfvTTTYKBmzny6/LSPTK9
 | 
				
			||||||
 | 
					0XIsHltuC1xG4vGQsES/Ph++Yj3Vn011FqvFZeBUHbfcQuB4h5wcb+90d4GU1kux
 | 
				
			||||||
 | 
					eabsHPIZKrlN4QKCAQEA2Fs8NAN5K9i7qbxZCJPi6DJV6XMznk6JVGb+qkkChCyq
 | 
				
			||||||
 | 
					IOXb95+c9CIpe6w2d3res3zvML3zbdz2Lyp9G0ve6tSlOaSnHeyIxZ5SRB+yQrcF
 | 
				
			||||||
 | 
					GXtsx370bOGjCi1/NH85kwKlMuROFJKleJQv8rKpIEo5aPSPV9Cc/VsUqBpvR+O0
 | 
				
			||||||
 | 
					U1HMv57P4yJA/ddw6imHJBl3jTmWBpK4B+LBsCbdypxdVoO8t32Lb2BqDTaPJfYU
 | 
				
			||||||
 | 
					RJUpjn/efLLoP6CWxYtqpUlY5tc7NJGAokl8Fo1mPn02klydvs09uiXE80Li2Hoc
 | 
				
			||||||
 | 
					/meMH07Lbt2VTw6iGNRX6VpIHEUZGZeS6rbAvO4ZawKCAQEAjOtGVPXdyWEB0kHu
 | 
				
			||||||
 | 
					MBzYY/7tMf0b/rymWNL9Vt5NiauQu8cYSBdNR21WzdLdHkFwqbOCLX9twA7zrnna
 | 
				
			||||||
 | 
					q+SNnfuxaShlbptls9HvKyySQMCaSRj3DJzaq3ZcM2vFgmUFQxeKPV1geeY9xOta
 | 
				
			||||||
 | 
					LqbExDzmFq2m9F1PPmqAPDL1bt6+7mCVzb1irB9be52WysUNKrPdBP6b5V1DHYAK
 | 
				
			||||||
 | 
					EwK1WOs/TxBusqDn/gWBjjmLqYr+ZVndaTfDvPd3sWDdzBoiKZ40QUZ15Z5lu76M
 | 
				
			||||||
 | 
					6e2DhfHCUjGcZBEjDaI+WYc9s0REAzJajEf9Lax3ZKZUyCpWbXx5CgSdKCHB8+cP
 | 
				
			||||||
 | 
					RTyTQQKCAQEAsxx8r5a8hocLfQ43Kvm7HH0nUHeVoRXlbOFDLNf6ZE/RnCCOxOX3
 | 
				
			||||||
 | 
					esiZTRAZmzo2CaOBJPnr/+SwTgW/woxCBGh8TEc6LnS2GdviwRD4c3CuoRTjzhgU
 | 
				
			||||||
 | 
					49q8Ld3SdDRrBoBnIMWOuktY/4S2WRZ9GwU3l+L2lD1Y6gmwBSa1P2+Lxnpupagk
 | 
				
			||||||
 | 
					9CVUZpEnokM05LbMmTa2M8Tc43Je5KSYcnaWctvmrIUbnN3VjhC/2y5oQwq1d4n2
 | 
				
			||||||
 | 
					N4eo65vXlbzAUgtxtNEz62YVdsSdHNJ8dXkVZ3+S+/VPh75i2PxjbdFSFW7Futlx
 | 
				
			||||||
 | 
					YtvAEs3LdgC8squSDQ1LJTutXfBjiUUX9wKCAQBiCMre86tLyJu6Qb6X1cRAwO7m
 | 
				
			||||||
 | 
					4kyGzIUtijXko6mWxb4X/usVvzhSaNVYbHbMZXjX+J5vhBOul+RmQ3EY6nw0H2z8
 | 
				
			||||||
 | 
					9D4z/rnQVqeb0uvIeUhBPni+s4fS4bA92M6Ie5bhiOSF2JjjJr38BFnTZARE7C+7
 | 
				
			||||||
 | 
					ZII7z2c0eQz/wAAt9fWWroAB2mIm6wxq0LNij2NoE0iq6k2xJE1/k8qhXpsN0zAv
 | 
				
			||||||
 | 
					bjG72Q7WryBeK/eIDK9e5wGlfLVDOx2Evlcaj70oJxuoRh57e8fCYy8huJQT+Wlx
 | 
				
			||||||
 | 
					Qw4zhxiyzAMq8SEqFsm8dVO4Bu2FwzmmehA80ieSb+si7JZU92xGDT394Im2
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9TCCAt+gAwIBAgIRAKbgxG1zgQI81ISaHxqLfpcwCwYJKoZIhvcNAQELMCYx
 | 
				
			||||||
 | 
					ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNTA1MjYy
 | 
				
			||||||
 | 
					MDU0MjJaFw0xODA1MTAyMDU0MjJaMBMxETAPBgNVBAoTCFF1aWNrVExTMIICIjAN
 | 
				
			||||||
 | 
					BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0Pc8DQ9AyvokFzm9v4a+29TCA3/
 | 
				
			||||||
 | 
					oARHbx59G+GOeGkrwG6ZWSZa/oNEJf3NJcU00V04k+fQuVoYBCgBXec9TEBvXa8M
 | 
				
			||||||
 | 
					WpLxp5U9LyYkv0AiSPfT2fJEE8mC+isMl+DbmgBcShwRXpeZQyIbEJhedS8mIjW/
 | 
				
			||||||
 | 
					MgJbdTylEq1UcZSLMuky+RWv10dw02fLuN1302OgfJRZooPug9rPYHHGbTB0o7II
 | 
				
			||||||
 | 
					hGlhziLVTKV9W1RP8Aop8TamSD85OV6shDaCvmMFr1YNDjcJJ5MGMaSmq0Krq9v4
 | 
				
			||||||
 | 
					nFwmuhOo8gvw/HhzYcxyMHnqMt6EgvbVWwXOoW7xiI3BEDFV33xgTp61bFpcdCai
 | 
				
			||||||
 | 
					gwUNzfe4/dHeCk/r3pteWOxH1bvcxUlmUB65wjRAwKuIX8Z0hC4ZlM30o+z11Aru
 | 
				
			||||||
 | 
					5QqKMrbSlOcd6yHT6NM1ZRyD+nbFORqB8W51g344eYl0zqQjxTQ0TNjJWDR2RWB/
 | 
				
			||||||
 | 
					Vlp5N+WRjDpsBscR8kt2Q1My17gWzvHfijGETZpbvmo2f+Keqc9fcfzkIe/VZFoO
 | 
				
			||||||
 | 
					nhRqhl2PSphcWdimk8Bwf5jC2uDAXWCdvVWvRSP4Xg8zpDwLhlsfLaWVH9n+WG3j
 | 
				
			||||||
 | 
					NLQ8EmHWaZlJSeW4BiDYsXmpTAkeLmwoS+pk2WL0TSQ7+S3DyrmTeVANHipNQZeB
 | 
				
			||||||
 | 
					twZJXIXR6Jc8hgsCAwEAAaM1MDMwDgYDVR0PAQH/BAQDAgCgMBMGA1UdJQQMMAoG
 | 
				
			||||||
 | 
					CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwCwYJKoZIhvcNAQELA4ICAQCl0cTLbLIn
 | 
				
			||||||
 | 
					XFuxreei+y6TlG2Z5XcxJ84mr8VLAaQMlJOLZV0O/suFBu9KqBuvPaHhGRnKE2uw
 | 
				
			||||||
 | 
					Vxdj9qaDdvmvuzi4jYyUA/sQuqq1+wHwGTadOi9r0IsL8OxzsG16OlhuXzhoQVdw
 | 
				
			||||||
 | 
					C9z1jad4HC7uihQ5yhl2ltAA+h5G0Sr1b9El2mx4p6BV+okmTvrqrmjshQb1GZwx
 | 
				
			||||||
 | 
					jG6SJ/uvjGf7rn09ZyYafF9ZDTMNodNXjW8orqGlFdXZLPFJ9agUFfwWfqD2lrtm
 | 
				
			||||||
 | 
					Fu+Ei0ZvKOtyzmh06eO2aGAHJCBTfcDM4tBKBKp0MOMoZkcQQDNpSyI12j6s1wtx
 | 
				
			||||||
 | 
					/1dC8QDyfFpZFXTbKn3q+6MpR+u5zqVquYjwP5DqGTvX0e1sLSthv7LRiOi0qHv1
 | 
				
			||||||
 | 
					bZ8JoWhRMNumui9mzwar5t20ExcWxGxizZY+t+OIj4kaAeRoKK6r6FrYBnTjM+iR
 | 
				
			||||||
 | 
					+xtML5UHPOSmYfNcai0Wn4T7hwpgnCJ+K7qGYjFUCarsINppQEwkxHAvuX+asc38
 | 
				
			||||||
 | 
					nA0wd7ByulkMJph0gP6j6LuJf28JODi6EQ7FcQItMeTuPrc+mpqJ4jP7vTTSJG7Q
 | 
				
			||||||
 | 
					wvqXLMgFQFR+2PG0s10hbY/Y/nwZAROfAs7ADED+EcDPTl/+XjVyo/aYIeOb/07W
 | 
				
			||||||
 | 
					SpS/cacZYUsSLgB4cWbxElcc/p7CW1PbOA==
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIJKQIBAAKCAgEAq0Pc8DQ9AyvokFzm9v4a+29TCA3/oARHbx59G+GOeGkrwG6Z
 | 
				
			||||||
 | 
					WSZa/oNEJf3NJcU00V04k+fQuVoYBCgBXec9TEBvXa8MWpLxp5U9LyYkv0AiSPfT
 | 
				
			||||||
 | 
					2fJEE8mC+isMl+DbmgBcShwRXpeZQyIbEJhedS8mIjW/MgJbdTylEq1UcZSLMuky
 | 
				
			||||||
 | 
					+RWv10dw02fLuN1302OgfJRZooPug9rPYHHGbTB0o7IIhGlhziLVTKV9W1RP8Aop
 | 
				
			||||||
 | 
					8TamSD85OV6shDaCvmMFr1YNDjcJJ5MGMaSmq0Krq9v4nFwmuhOo8gvw/HhzYcxy
 | 
				
			||||||
 | 
					MHnqMt6EgvbVWwXOoW7xiI3BEDFV33xgTp61bFpcdCaigwUNzfe4/dHeCk/r3pte
 | 
				
			||||||
 | 
					WOxH1bvcxUlmUB65wjRAwKuIX8Z0hC4ZlM30o+z11Aru5QqKMrbSlOcd6yHT6NM1
 | 
				
			||||||
 | 
					ZRyD+nbFORqB8W51g344eYl0zqQjxTQ0TNjJWDR2RWB/Vlp5N+WRjDpsBscR8kt2
 | 
				
			||||||
 | 
					Q1My17gWzvHfijGETZpbvmo2f+Keqc9fcfzkIe/VZFoOnhRqhl2PSphcWdimk8Bw
 | 
				
			||||||
 | 
					f5jC2uDAXWCdvVWvRSP4Xg8zpDwLhlsfLaWVH9n+WG3jNLQ8EmHWaZlJSeW4BiDY
 | 
				
			||||||
 | 
					sXmpTAkeLmwoS+pk2WL0TSQ7+S3DyrmTeVANHipNQZeBtwZJXIXR6Jc8hgsCAwEA
 | 
				
			||||||
 | 
					AQKCAgBJcL1iR5ROMtr0ZNIp4gciALfjQVV3gb48GR/e/9b/LWI0j3i0sOzeLN3h
 | 
				
			||||||
 | 
					SLda1fjzOn1Td1ma0dZwmdMUOF+hvhPDYZfzkwWLLkThXgLt/At3rMYstGWa8pN2
 | 
				
			||||||
 | 
					wVUSH7sri7IHmYedP3baQdrHP/9pUsGQc+m8ASTE3i+PFcKbPe5+818HTtRrhVgN
 | 
				
			||||||
 | 
					X3oNmPKUNCmSom7ZcKer5P1+Ruum0NuDgomCdkoZgfhjeKeLrVjl/wXDSQL/AhWA
 | 
				
			||||||
 | 
					02c4/sML7xx19nl8uf7z+Gj0ir1pvRouhRJTwnRc4KdWu+Yn7WLU8j2ZKf5St/as
 | 
				
			||||||
 | 
					zjnpYVEdCp0KSHccgXtobUZDEG2NCHmM6gR2j3qgoUAYjHyqPYlph2r5C47q+p4c
 | 
				
			||||||
 | 
					dDWkpwZwGiuYq9qpZj24X6BfppxExcX6AwOgFLZLp80IynwrMVxFsDd2J+KpKRQ1
 | 
				
			||||||
 | 
					+ZtYPcULwInF9MNi/dv84pxGOmmOaIUyjN8Sw4eqANU4T5uvTjUj7Ou6KYyfmxgG
 | 
				
			||||||
 | 
					y++vjpRN7tN1t1Hwde8SVWobvmhU+5SJVHV8INoJD7uciaevPo9pt833SQTtDXeY
 | 
				
			||||||
 | 
					PVBhOKO7thAxdUiqlU/1nGTXnf1VO6wAjaVYoTnP4tJ97WuTptwd2F5znVWHFGVh
 | 
				
			||||||
 | 
					lzJAzmFOuyCnRnInsf4n5EmWJnT7XF2CofQqAJ8NIddrU8GnQQKCAQEAyqWAiPMK
 | 
				
			||||||
 | 
					I/dMzlS7oJGlhbKZ5R4buc+EoZqtW7/8/S+0L6IaQvpEUilD+aDQyaxXjoKiQQL+
 | 
				
			||||||
 | 
					0UeeSmF/zU5BsOTpB8AuJUfYoUe0N+x7hO5eIcoCB/QWYX+iC3tCN4j1Iwt6VliV
 | 
				
			||||||
 | 
					PBYEiLUYPngSIHob/nK8UtgxrWQ3Fik9XJtWhePHrvMvDBalgCKdnyhuucGxKUjc
 | 
				
			||||||
 | 
					TtPcyMFdi0z4Kt/FAm+5u/v4ZkO909Ish0FrAqQ9t5ETfvTTTYKBmzny6/LSPTK9
 | 
				
			||||||
 | 
					0XIsHltuC1xG4vGQsES/Ph++Yj3Vn011FqvFZeBUHbfcQuB4h5wcb+90d4GU1kux
 | 
				
			||||||
 | 
					eabsHPIZKrlN4QKCAQEA2Fs8NAN5K9i7qbxZCJPi6DJV6XMznk6JVGb+qkkChCyq
 | 
				
			||||||
 | 
					IOXb95+c9CIpe6w2d3res3zvML3zbdz2Lyp9G0ve6tSlOaSnHeyIxZ5SRB+yQrcF
 | 
				
			||||||
 | 
					GXtsx370bOGjCi1/NH85kwKlMuROFJKleJQv8rKpIEo5aPSPV9Cc/VsUqBpvR+O0
 | 
				
			||||||
 | 
					U1HMv57P4yJA/ddw6imHJBl3jTmWBpK4B+LBsCbdypxdVoO8t32Lb2BqDTaPJfYU
 | 
				
			||||||
 | 
					RJUpjn/efLLoP6CWxYtqpUlY5tc7NJGAokl8Fo1mPn02klydvs09uiXE80Li2Hoc
 | 
				
			||||||
 | 
					/meMH07Lbt2VTw6iGNRX6VpIHEUZGZeS6rbAvO4ZawKCAQEAjOtGVPXdyWEB0kHu
 | 
				
			||||||
 | 
					MBzYY/7tMf0b/rymWNL9Vt5NiauQu8cYSBdNR21WzdLdHkFwqbOCLX9twA7zrnna
 | 
				
			||||||
 | 
					q+SNnfuxaShlbptls9HvKyySQMCaSRj3DJzaq3ZcM2vFgmUFQxeKPV1geeY9xOta
 | 
				
			||||||
 | 
					LqbExDzmFq2m9F1PPmqAPDL1bt6+7mCVzb1irB9be52WysUNKrPdBP6b5V1DHYAK
 | 
				
			||||||
 | 
					EwK1WOs/TxBusqDn/gWBjjmLqYr+ZVndaTfDvPd3sWDdzBoiKZ40QUZ15Z5lu76M
 | 
				
			||||||
 | 
					6e2DhfHCUjGcZBEjDaI+WYc9s0REAzJajEf9Lax3ZKZUyCpWbXx5CgSdKCHB8+cP
 | 
				
			||||||
 | 
					RTyTQQKCAQEAsxx8r5a8hocLfQ43Kvm7HH0nUHeVoRXlbOFDLNf6ZE/RnCCOxOX3
 | 
				
			||||||
 | 
					esiZTRAZmzo2CaOBJPnr/+SwTgW/woxCBGh8TEc6LnS2GdviwRD4c3CuoRTjzhgU
 | 
				
			||||||
 | 
					49q8Ld3SdDRrBoBnIMWOuktY/4S2WRZ9GwU3l+L2lD1Y6gmwBSa1P2+Lxnpupagk
 | 
				
			||||||
 | 
					9CVUZpEnokM05LbMmTa2M8Tc43Je5KSYcnaWctvmrIUbnN3VjhC/2y5oQwq1d4n2
 | 
				
			||||||
 | 
					N4eo65vXlbzAUgtxtNEz62YVdsSdHNJ8dXkVZ3+S+/VPh75i2PxjbdFSFW7Futlx
 | 
				
			||||||
 | 
					YtvAEs3LdgC8squSDQ1LJTutXfBjiUUX9wKCAQBiCMre86tLyJu6Qb6X1cRAwO7m
 | 
				
			||||||
 | 
					4kyGzIUtijXko6mWxb4X/usVvzhSaNVYbHbMZXjX+J5vhBOul+RmQ3EY6nw0H2z8
 | 
				
			||||||
 | 
					9D4z/rnQVqeb0uvIeUhBPni+s4fS4bA92M6Ie5bhiOSF2JjjJr38BFnTZARE7C+7
 | 
				
			||||||
 | 
					ZII7z2c0eQz/wAAt9fWWroAB2mIm6wxq0LNij2NoE0iq6k2xJE1/k8qhXpsN0zAv
 | 
				
			||||||
 | 
					bjG72Q7WryBeK/eIDK9e5wGlfLVDOx2Evlcaj70oJxuoRh57e8fCYy8huJQT+Wlx
 | 
				
			||||||
 | 
					Qw4zhxiyzAMq8SEqFsm8dVO4Bu2FwzmmehA80ieSb+si7JZU92xGDT394Im2
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw
 | 
				
			||||||
 | 
					NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX
 | 
				
			||||||
 | 
					GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx
 | 
				
			||||||
 | 
					BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT
 | 
				
			||||||
 | 
					wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO
 | 
				
			||||||
 | 
					cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY
 | 
				
			||||||
 | 
					AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR
 | 
				
			||||||
 | 
					sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE
 | 
				
			||||||
 | 
					CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p
 | 
				
			||||||
 | 
					y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk
 | 
				
			||||||
 | 
					o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN
 | 
				
			||||||
 | 
					NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G
 | 
				
			||||||
 | 
					Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/
 | 
				
			||||||
 | 
					BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z
 | 
				
			||||||
 | 
					PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU
 | 
				
			||||||
 | 
					lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU
 | 
				
			||||||
 | 
					GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna
 | 
				
			||||||
 | 
					XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi
 | 
				
			||||||
 | 
					QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK
 | 
				
			||||||
 | 
					UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w
 | 
				
			||||||
 | 
					Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH
 | 
				
			||||||
 | 
					sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF
 | 
				
			||||||
 | 
					AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib
 | 
				
			||||||
 | 
					KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA
 | 
				
			||||||
 | 
					KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w==
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw
 | 
				
			||||||
 | 
					NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf
 | 
				
			||||||
 | 
					fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3
 | 
				
			||||||
 | 
					lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl
 | 
				
			||||||
 | 
					d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD
 | 
				
			||||||
 | 
					L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp
 | 
				
			||||||
 | 
					GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2
 | 
				
			||||||
 | 
					ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/
 | 
				
			||||||
 | 
					BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH
 | 
				
			||||||
 | 
					Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/
 | 
				
			||||||
 | 
					w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2
 | 
				
			||||||
 | 
					x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh
 | 
				
			||||||
 | 
					XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne
 | 
				
			||||||
 | 
					SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw
 | 
				
			||||||
 | 
					NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf
 | 
				
			||||||
 | 
					fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3
 | 
				
			||||||
 | 
					lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl
 | 
				
			||||||
 | 
					d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD
 | 
				
			||||||
 | 
					L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp
 | 
				
			||||||
 | 
					GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2
 | 
				
			||||||
 | 
					ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/
 | 
				
			||||||
 | 
					BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH
 | 
				
			||||||
 | 
					Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/
 | 
				
			||||||
 | 
					w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2
 | 
				
			||||||
 | 
					x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh
 | 
				
			||||||
 | 
					XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne
 | 
				
			||||||
 | 
					SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw
 | 
				
			||||||
 | 
					NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf
 | 
				
			||||||
 | 
					fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3
 | 
				
			||||||
 | 
					lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl
 | 
				
			||||||
 | 
					d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD
 | 
				
			||||||
 | 
					L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp
 | 
				
			||||||
 | 
					GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2
 | 
				
			||||||
 | 
					ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/
 | 
				
			||||||
 | 
					BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH
 | 
				
			||||||
 | 
					Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/
 | 
				
			||||||
 | 
					w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2
 | 
				
			||||||
 | 
					x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh
 | 
				
			||||||
 | 
					XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne
 | 
				
			||||||
 | 
					SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw
 | 
				
			||||||
 | 
					NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf
 | 
				
			||||||
 | 
					fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3
 | 
				
			||||||
 | 
					lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl
 | 
				
			||||||
 | 
					d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD
 | 
				
			||||||
 | 
					L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp
 | 
				
			||||||
 | 
					GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2
 | 
				
			||||||
 | 
					ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/
 | 
				
			||||||
 | 
					BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH
 | 
				
			||||||
 | 
					Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/
 | 
				
			||||||
 | 
					w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2
 | 
				
			||||||
 | 
					x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh
 | 
				
			||||||
 | 
					XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne
 | 
				
			||||||
 | 
					SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw
 | 
				
			||||||
 | 
					NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf
 | 
				
			||||||
 | 
					fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3
 | 
				
			||||||
 | 
					lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl
 | 
				
			||||||
 | 
					d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD
 | 
				
			||||||
 | 
					L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp
 | 
				
			||||||
 | 
					GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2
 | 
				
			||||||
 | 
					ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/
 | 
				
			||||||
 | 
					BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH
 | 
				
			||||||
 | 
					Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/
 | 
				
			||||||
 | 
					w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2
 | 
				
			||||||
 | 
					x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh
 | 
				
			||||||
 | 
					XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne
 | 
				
			||||||
 | 
					SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIQKQTGjKpSVBW78ef0fOcxRTALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDgyMDIz
 | 
				
			||||||
 | 
					MjE0OVoXDTE4MDgwNDIzMjE0OVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwoPM
 | 
				
			||||||
 | 
					xiDZK6Fwy5r3waRkfJHhyZZH828Jyj+nz5UVkMyOM/xN6MgJ2w911hTj1wSXG2n3
 | 
				
			||||||
 | 
					AohF3gTFNrDYh4j2qRZnixDrOM5GBm2/KJbyfBIYkrR45yLfjidO7MRnhaPZ5Fov
 | 
				
			||||||
 | 
					l+RKwNBXP4Q2mUe7q9FM457Rm8hAcqXP04AJT20m1QSYQivDgxsDxuAQte3VEy1E
 | 
				
			||||||
 | 
					0j0CwUKoFHT6MHOnDPEZbc4r1+ba34WBM1Sc5KXyV2JlbtU07J4hACYWVsD7vQCl
 | 
				
			||||||
 | 
					VFlZNE4E35ahMDZ+ODLal9PAT8ARLdAtjvRWrT+h8qZ4Yfwt/sGF1K4CAkTP3H5p
 | 
				
			||||||
 | 
					uMkJG56zmqIEYeHMuwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/
 | 
				
			||||||
 | 
					BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALpieTckiPEeb3rTAWl7waDPLPOIhS5C
 | 
				
			||||||
 | 
					XHVfOm7cPmRn3pT2VuR8y74U7a1uOkYMgJnCWb8lSXhbqC89FatLnAhKqo4I9oD8
 | 
				
			||||||
 | 
					2BXgYeIpP5/OWBcjzmsMnowrvokc0chAmAR0Ux6AP0eX9amC0lGMuTHdw3+is0AR
 | 
				
			||||||
 | 
					lhoImOUPXvgMH7W2RimpSgnX0R5wKqfuGwMfbGa0xhWBZ+wekAKcU8b+pIHDyX0c
 | 
				
			||||||
 | 
					EQcir2y8/lVjECXSAIlV6iasPQ3hm1sd0xq1hx4yrwYFvQb7yEhOXbK24HLr/20D
 | 
				
			||||||
 | 
					RRmEOuS8gg2XtUFv66z/VOw/nUleIg9GAuWDJaiu9frmIma4/tIY4qY=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					[[suite]]
 | 
				
			||||||
 | 
					  dind=true
 | 
				
			||||||
 | 
					  images=[ "nginx:1.9", "dmcgowan/token-server:simple", "dmcgowan/token-server:oauth", "dmcgowan/malevolent:0.1.0" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  [[suite.testrunner]]
 | 
				
			||||||
 | 
					    command="bats -t ."
 | 
				
			||||||
 | 
					    format="tap"
 | 
				
			||||||
 | 
					    env=["TEST_REPO=hello-world", "TEST_TAG=latest", "TEST_USER=testuser", "TEST_PASSWORD=passpassword", "TEST_REGISTRY=localregistry", "TEST_SKIP_PULL=true"]
 | 
				
			||||||
 | 
					  [[suite.customimage]]
 | 
				
			||||||
 | 
					    tag="golem-distribution:latest"
 | 
				
			||||||
 | 
					    default="registry:2.2.1"
 | 
				
			||||||
 | 
					  [[suite.customimage]]
 | 
				
			||||||
 | 
					    tag="golem-dind:latest"
 | 
				
			||||||
 | 
					    default="docker:1.10.1-dind"
 | 
				
			||||||
 | 
					    version="1.10.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,21 +1,101 @@
 | 
				
			||||||
# Start docker daemon
 | 
					# has_digest enforces the last output line is "Digest: sha256:..."
 | 
				
			||||||
function start_daemon() {
 | 
					# the input is the output from a docker push cli command
 | 
				
			||||||
	# Drivers to use for Docker engines the tests are going to create.
 | 
					function has_digest() {
 | 
				
			||||||
	STORAGE_DRIVER=${STORAGE_DRIVER:-overlay}
 | 
						filtered=$(echo "$1" |sed -rn '/[dD]igest\: sha(256|384|512)/ p')
 | 
				
			||||||
	EXEC_DRIVER=${EXEC_DRIVER:-native}
 | 
						[ "$filtered" != "" ]
 | 
				
			||||||
 | 
						# See http://wiki.alpinelinux.org/wiki/Regex#BREs before making changes to regex
 | 
				
			||||||
	docker --daemon --log-level=panic \
 | 
						digest=$(expr "$filtered" : ".*\(sha[0-9]\{3,3\}:[a-z0-9]*\)")
 | 
				
			||||||
		--storage-driver="$STORAGE_DRIVER" --exec-driver="$EXEC_DRIVER" &
 | 
					}
 | 
				
			||||||
	DOCKER_PID=$!
 | 
					
 | 
				
			||||||
 | 
					# tempImage creates a new image using the provided name
 | 
				
			||||||
	# Wait for it to become reachable.
 | 
					# requires bats
 | 
				
			||||||
	tries=10
 | 
					function tempImage() {
 | 
				
			||||||
	until docker version &> /dev/null; do
 | 
						dir=$(mktemp -d)
 | 
				
			||||||
		(( tries-- ))
 | 
						run dd if=/dev/urandom of="$dir/f" bs=1024 count=512
 | 
				
			||||||
		if [ $tries -le 0 ]; then
 | 
						cat <<DockerFileContent > "$dir/Dockerfile"
 | 
				
			||||||
			echo >&2 "error: daemon failed to start"
 | 
					FROM scratch
 | 
				
			||||||
			exit 1
 | 
					COPY f /f
 | 
				
			||||||
		fi
 | 
					
 | 
				
			||||||
		sleep 1
 | 
					CMD []
 | 
				
			||||||
	done
 | 
					DockerFileContent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						cp_t $dir "/tmpbuild/"
 | 
				
			||||||
 | 
						exec_t "cd /tmpbuild/; docker build --no-cache -t $1 .; rm -rf /tmpbuild/"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# skip basic auth tests with Docker 1.6, where they don't pass due to
 | 
				
			||||||
 | 
					# certificate issues, requires bats
 | 
				
			||||||
 | 
					function basic_auth_version_check() {
 | 
				
			||||||
 | 
						run sh -c 'docker version | fgrep -q "Client version: 1.6."'
 | 
				
			||||||
 | 
						if [ "$status" -eq 0 ]; then
 | 
				
			||||||
 | 
							skip "Basic auth tests don't support 1.6.x"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# login issues a login to docker to the provided server
 | 
				
			||||||
 | 
					# uses user, password, and email variables set outside of function
 | 
				
			||||||
 | 
					# requies bats
 | 
				
			||||||
 | 
					function login() {
 | 
				
			||||||
 | 
						rm -f /root/.docker/config.json
 | 
				
			||||||
 | 
						run docker_t login -u $user -p $password -e $email $1
 | 
				
			||||||
 | 
						if [ "$status" -ne 0 ]; then
 | 
				
			||||||
 | 
							echo $output
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						# First line is WARNING about credential save or email deprecation (maybe both)
 | 
				
			||||||
 | 
						[ "${lines[2]}" = "Login Succeeded" -o "${lines[1]}" = "Login Succeeded" ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function login_oauth() {
 | 
				
			||||||
 | 
						login $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tmpFile=$(mktemp)
 | 
				
			||||||
 | 
						get_file_t /root/.docker/config.json $tmpFile
 | 
				
			||||||
 | 
						run awk -v RS="" "/\"$1\": \\{[[:space:]]+\"auth\": \"[[:alnum:]]+\",[[:space:]]+\"identitytoken\"/ {exit 3}" $tmpFile
 | 
				
			||||||
 | 
						[ "$status" -eq 3 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function parse_version() {
 | 
				
			||||||
 | 
						version=$(echo "$1" | cut -d '-' -f1) # Strip anything after '-'
 | 
				
			||||||
 | 
						major=$(echo "$version" | cut -d . -f1)
 | 
				
			||||||
 | 
						minor=$(echo "$version" | cut -d . -f2)
 | 
				
			||||||
 | 
						rev=$(echo "$version" | cut -d . -f3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						version=$((major * 1000 * 1000 + minor * 1000 + rev))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function version_check() {
 | 
				
			||||||
 | 
						name=$1
 | 
				
			||||||
 | 
						checkv=$2
 | 
				
			||||||
 | 
						minv=$3
 | 
				
			||||||
 | 
						parse_version "$checkv"
 | 
				
			||||||
 | 
						v=$version
 | 
				
			||||||
 | 
						parse_version "$minv"
 | 
				
			||||||
 | 
						if [ "$v" -lt "$version" ]; then
 | 
				
			||||||
 | 
							skip "$name version \"$checkv\" does not meet required version \"$minv\""
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function get_file_t() {
 | 
				
			||||||
 | 
						docker cp dockerdaemon:$1 $2
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function cp_t() {
 | 
				
			||||||
 | 
						docker cp $1 dockerdaemon:$2
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function exec_t() {
 | 
				
			||||||
 | 
						docker exec dockerdaemon sh -c "$@"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function docker_t() {
 | 
				
			||||||
 | 
						docker exec dockerdaemon docker $@
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# build reates a new docker image id from another image
 | 
				
			||||||
 | 
					function build() {
 | 
				
			||||||
 | 
						docker exec -i dockerdaemon docker build --no-cache -t $1 - <<DOCKERFILE
 | 
				
			||||||
 | 
					FROM $2
 | 
				
			||||||
 | 
					MAINTAINER distribution@docker.com
 | 
				
			||||||
 | 
					DOCKERFILE
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,38 +1,49 @@
 | 
				
			||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
set -e
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hostname=$1
 | 
					hostname="localregistry"
 | 
				
			||||||
if [ "$hostname" = "" ]; then
 | 
					authhostname="auth.$hostname"
 | 
				
			||||||
	hostname="localhost"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
mkdir -p /etc/docker/certs.d/$hostname:5011
 | 
					set_etc_hosts() {
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5011/ca.crt
 | 
						hostentry=$1
 | 
				
			||||||
 | 
						IP=$(ifconfig eth0|grep "inet addr:"| cut -d: -f2 | awk '{ print $1}')
 | 
				
			||||||
 | 
						echo "$IP $hostentry" >> /etc/hosts
 | 
				
			||||||
 | 
						# TODO: Check if record already exists in /etc/hosts
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mkdir -p /etc/docker/certs.d/$hostname:5440
 | 
					install_ca() {
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5440/ca.crt
 | 
						mkdir -p $1/$hostname:$2
 | 
				
			||||||
 | 
						cp ./nginx/ssl/registry-ca+ca.pem $1/$hostname:$2/ca.crt
 | 
				
			||||||
 | 
						if [ "$3" != "" ]; then
 | 
				
			||||||
 | 
							cp ./nginx/ssl/registry-$3+client-cert.pem $1/$hostname:$2/client.cert
 | 
				
			||||||
 | 
							cp ./nginx/ssl/registry-$3+client-key.pem $1/$hostname:$2/client.key
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mkdir -p /etc/docker/certs.d/$hostname:5441
 | 
					install_test_certs() {
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5441/ca.crt
 | 
						install_ca $1 5440
 | 
				
			||||||
 | 
						install_ca $1 5441
 | 
				
			||||||
 | 
						install_ca $1 5442 ca
 | 
				
			||||||
 | 
						install_ca $1 5443 noca
 | 
				
			||||||
 | 
						install_ca $1 5444 ca
 | 
				
			||||||
 | 
						install_ca $1 5447 ca
 | 
				
			||||||
 | 
						# For test remove CA
 | 
				
			||||||
 | 
						rm $1/${hostname}:5447/ca.crt
 | 
				
			||||||
 | 
						install_ca $1 5448
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mkdir -p /etc/docker/certs.d/$hostname:5442
 | 
					set_etc_hosts $hostname
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5442/ca.crt
 | 
					set_etc_hosts $authhostname
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+client-cert.pem /etc/docker/certs.d/$hostname:5442/client.cert
 | 
					 | 
				
			||||||
cp ./nginx/ssl/registry-ca+client-key.pem /etc/docker/certs.d/$hostname:5442/client.key
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
mkdir -p /etc/docker/certs.d/$hostname:5443
 | 
					install_test_certs /etc/docker/certs.d
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5443/ca.crt
 | 
					install_test_certs /root/.docker/tls
 | 
				
			||||||
cp ./nginx/ssl/registry-noca+client-cert.pem /etc/docker/certs.d/$hostname:5443/client.cert
 | 
					 | 
				
			||||||
cp ./nginx/ssl/registry-noca+client-key.pem /etc/docker/certs.d/$hostname:5443/client.key
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
mkdir -p /etc/docker/certs.d/$hostname:5444
 | 
					# Malevolent server
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5444/ca.crt
 | 
					mkdir -p /etc/docker/certs.d/$hostname:6666
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+client-cert.pem /etc/docker/certs.d/$hostname:5444/client.cert
 | 
					cp ./malevolent-certs/ca.pem /etc/docker/certs.d/$hostname:6666/ca.crt
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+client-key.pem /etc/docker/certs.d/$hostname:5444/client.key
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
mkdir -p /etc/docker/certs.d/$hostname:5447
 | 
					# Token server
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+client-cert.pem /etc/docker/certs.d/$hostname:5447/client.cert
 | 
					install_file ./tokenserver/certs/ca.pem $1 5555
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+client-key.pem /etc/docker/certs.d/$hostname:5447/client.key
 | 
					install_file ./tokenserver/certs/ca.pem $1 5554
 | 
				
			||||||
 | 
					install_file ./tokenserver/certs/ca.pem $1 5557
 | 
				
			||||||
mkdir -p /etc/docker/certs.d/$hostname:5448
 | 
					install_file ./tokenserver/certs/ca.pem $1 5558
 | 
				
			||||||
cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5448/ca.crt
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIQKQTGjKpSVBW78ef0fOcxRTALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDgyMDIz
 | 
				
			||||||
 | 
					MjE0OVoXDTE4MDgwNDIzMjE0OVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwoPM
 | 
				
			||||||
 | 
					xiDZK6Fwy5r3waRkfJHhyZZH828Jyj+nz5UVkMyOM/xN6MgJ2w911hTj1wSXG2n3
 | 
				
			||||||
 | 
					AohF3gTFNrDYh4j2qRZnixDrOM5GBm2/KJbyfBIYkrR45yLfjidO7MRnhaPZ5Fov
 | 
				
			||||||
 | 
					l+RKwNBXP4Q2mUe7q9FM457Rm8hAcqXP04AJT20m1QSYQivDgxsDxuAQte3VEy1E
 | 
				
			||||||
 | 
					0j0CwUKoFHT6MHOnDPEZbc4r1+ba34WBM1Sc5KXyV2JlbtU07J4hACYWVsD7vQCl
 | 
				
			||||||
 | 
					VFlZNE4E35ahMDZ+ODLal9PAT8ARLdAtjvRWrT+h8qZ4Yfwt/sGF1K4CAkTP3H5p
 | 
				
			||||||
 | 
					uMkJG56zmqIEYeHMuwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/
 | 
				
			||||||
 | 
					BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALpieTckiPEeb3rTAWl7waDPLPOIhS5C
 | 
				
			||||||
 | 
					XHVfOm7cPmRn3pT2VuR8y74U7a1uOkYMgJnCWb8lSXhbqC89FatLnAhKqo4I9oD8
 | 
				
			||||||
 | 
					2BXgYeIpP5/OWBcjzmsMnowrvokc0chAmAR0Ux6AP0eX9amC0lGMuTHdw3+is0AR
 | 
				
			||||||
 | 
					lhoImOUPXvgMH7W2RimpSgnX0R5wKqfuGwMfbGa0xhWBZ+wekAKcU8b+pIHDyX0c
 | 
				
			||||||
 | 
					EQcir2y8/lVjECXSAIlV6iasPQ3hm1sd0xq1hx4yrwYFvQb7yEhOXbK24HLr/20D
 | 
				
			||||||
 | 
					RRmEOuS8gg2XtUFv66z/VOw/nUleIg9GAuWDJaiu9frmIma4/tIY4qY=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIDETCCAfugAwIBAgIQZRKt7OeG+TlC2riszYwQQTALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDgyMDIz
 | 
				
			||||||
 | 
					MjE0OVoXDTE4MDgwNDIzMjE0OVowKzERMA8GA1UEChMIUXVpY2tUTFMxFjAUBgNV
 | 
				
			||||||
 | 
					BAMTDWxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
 | 
				
			||||||
 | 
					AQDPdsUBStNMz4coXfQVIJIafG85VkngM4fV7hrg7AbiGLCWvq8cWOrYM50G9Wmo
 | 
				
			||||||
 | 
					twK1WeQ6bigYOjINgSfTxcy3adciVZIIJyXqboz6n2V0yRPWpakof939bvuAurAP
 | 
				
			||||||
 | 
					tSqQ2V5fGN0ZZn4J4IbXMSovKwo7sG3X6i4q/8DYHZ/mKjvCRMPC3MGWqunknpkm
 | 
				
			||||||
 | 
					dzyKbIFHaDKlAqIOwTsDhHvGzm/9n3D+h4sl5ZPBobuBEV2u5GR0H5ujak4+Kczt
 | 
				
			||||||
 | 
					thCWtRkzCfnjW0TEanheSYJGu8OgCGoFjQnHotgqvOO6iHZCsrB3gf8WQeou+y9e
 | 
				
			||||||
 | 
					+OyLZv3FmqdC9SXr3b0LGQTFAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIAoDAMBgNV
 | 
				
			||||||
 | 
					HRMBAf8EAjAAMBgGA1UdEQQRMA+CDWxvY2FscmVnaXN0cnkwCwYJKoZIhvcNAQEL
 | 
				
			||||||
 | 
					A4IBAQC/PP2Y9QVhO8t4BXML1QpNRWqXG8Gg0P1XIh6M6FoxcGIodLdbzui828YB
 | 
				
			||||||
 | 
					wm9ZlyKars+nDdgLdQWawdV7hSd6s2NeQlHYQSGLsdTAVkgIxiD7D2Tw3kAZ6Zrj
 | 
				
			||||||
 | 
					dPikoVAc+rBMm/BXQLzy95IAbBVOHOpBkOOgF+TYxeLnOc3GzbUqBi1Pq97DMaxr
 | 
				
			||||||
 | 
					DaDuywH55P/6v7qt610UIsZ6+RZ78iiRx4Q+oRxEqGT0rXI76gVxOFabbJuFr1n1
 | 
				
			||||||
 | 
					kEWa3u/BssJzX3KVAm7oUtaBnj2SH5fokFmvZ5lBXA4QO/5doOa8yZiFFvvQs7EY
 | 
				
			||||||
 | 
					SWDxLrvS33UCtsCcpPggjehnxKaC
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIEpQIBAAKCAQEAz3bFAUrTTM+HKF30FSCSGnxvOVZJ4DOH1e4a4OwG4hiwlr6v
 | 
				
			||||||
 | 
					HFjq2DOdBvVpqLcCtVnkOm4oGDoyDYEn08XMt2nXIlWSCCcl6m6M+p9ldMkT1qWp
 | 
				
			||||||
 | 
					KH/d/W77gLqwD7UqkNleXxjdGWZ+CeCG1zEqLysKO7Bt1+ouKv/A2B2f5io7wkTD
 | 
				
			||||||
 | 
					wtzBlqrp5J6ZJnc8imyBR2gypQKiDsE7A4R7xs5v/Z9w/oeLJeWTwaG7gRFdruRk
 | 
				
			||||||
 | 
					dB+bo2pOPinM7bYQlrUZMwn541tExGp4XkmCRrvDoAhqBY0Jx6LYKrzjuoh2QrKw
 | 
				
			||||||
 | 
					d4H/FkHqLvsvXvjsi2b9xZqnQvUl6929CxkExQIDAQABAoIBAQCZjCUI7NFwwxQc
 | 
				
			||||||
 | 
					m1UAogeglMJZJHUu+9SoUD8Sg34grvdbyqueBm1iMOkiclaOKU1W3b4eRNNmAwRy
 | 
				
			||||||
 | 
					nEnW4km+4hX48m5PnHHijYnIIFsd0YjeT+Pf9qtdXFvGjeWq6oIjjM3dAnD50LKu
 | 
				
			||||||
 | 
					KsCB2oCHQoqjXNQfftJGvt2C1oI2/WvdOR4prnGXElVfASswX4PkP5LCfLhIx+Fr
 | 
				
			||||||
 | 
					7ErfaRIKigLSaAWLKaw3IlL12Q/KkuGcnzYIzIRwY4VJ64ENN6M3+KknfGovQItL
 | 
				
			||||||
 | 
					sCxceSe61THDP9AAI3Mequm8z3H0CImOWhJCge5l7ttLLMXZXqGxDCVx+3zvqlCa
 | 
				
			||||||
 | 
					X0cgGSVBAoGBAOvTN3oJJx1vnh1mRj8+hqzFq1bjm4T/Wp314QWLeo++43II4uMM
 | 
				
			||||||
 | 
					5hxUlO5ViY1sKxQrGwK+9c9ddxAvm5OAFFkzgW9EhDCu0tXUb2/vAJQ93SgqbcRu
 | 
				
			||||||
 | 
					coXWJpk0eNW/ouk2s1X8dzs+sCs3a4H64fEEj8yhwoyovjfucspsn7t1AoGBAOE2
 | 
				
			||||||
 | 
					ayLKx7CcWCiD/VGNvP7714MDst2isyq8reg8LEMmAaXR2IWWj5eGwKrImTQCsrjW
 | 
				
			||||||
 | 
					P37aBp1lcWuuYRKl/WEGBy6JLNdATyUoYc1Yo+8YdenekkOtOHHJerlK3OKi3ZVp
 | 
				
			||||||
 | 
					q4HJY9wzKg/wYLcbTmjjzKj+OBIZWwig73XUHwoRAoGBAJnuIrYbp1aFdvXFvnCl
 | 
				
			||||||
 | 
					xY6c8DwlEWx8qY+V4S2XX4bYmOnkdwSxdLplU1lGqCSRyIS/pj/imdyjK4Z7LNfY
 | 
				
			||||||
 | 
					sG+RORmB5a9JTgGZSqwLm5snzmXbXA7t8P7/S+6Q25baIeKMe/7SbplTT/bFk/0h
 | 
				
			||||||
 | 
					371MtvhhVfYuZwtnL7KFuLXJAoGBAMQ3UHKYsBC8tsZd8Pf8AL07mFHKiC04Etfa
 | 
				
			||||||
 | 
					Wb5rpri+RVM+mGITgnmnavehHHHHJAWMjPetZ3P8rSv/Ww4PVsoQoXM3Cr1jh1E9
 | 
				
			||||||
 | 
					dLCfWPz4l8syIscaBYKF4wnLItXGxj3mOgoy93EjlrMaYHlILjGOv4JBM4L5WmoT
 | 
				
			||||||
 | 
					JW7IaF6xAoGAZ4K8MwU/cAah8VinMmLGxvWWuBSgTTebuY5zN603MvFLKv5necuc
 | 
				
			||||||
 | 
					BZfTTxD+gOnxRT6QAh++tOsbBmsgR9HmTSlQSSgw1L7cwGyXzLCDYw+5K/03KXSU
 | 
				
			||||||
 | 
					DaFdgtfcDDJO8WtjOgjyTRzEAOsqFta1ige4pIu5fTilNVMQlhts5Iw=
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,192 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env bats
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This tests various expected error scenarios when pulling bad content
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					load helpers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					host="localregistry:6666"
 | 
				
			||||||
 | 
					base="malevolent-test"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function setup() {
 | 
				
			||||||
 | 
						tempImage $base:latest
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test malevolent proxy pass through" {
 | 
				
			||||||
 | 
						docker_t tag -f $base:latest $host/$base/nochange:latest
 | 
				
			||||||
 | 
						run docker_t push $host/$base/nochange:latest
 | 
				
			||||||
 | 
						echo $output
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t pull $host/$base/nochange:latest
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test malevolent image name change" {
 | 
				
			||||||
 | 
						imagename="$host/$base/rename"
 | 
				
			||||||
 | 
						image="$imagename:lastest"
 | 
				
			||||||
 | 
						docker_t tag -f $base:latest $image
 | 
				
			||||||
 | 
						run docker_t push $image
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Pull attempt should fail to verify manifest digest
 | 
				
			||||||
 | 
						run docker_t pull "$imagename@$digest"
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test malevolent altered layer" {
 | 
				
			||||||
 | 
						image="$host/$base/addfile:latest"
 | 
				
			||||||
 | 
						tempImage $image
 | 
				
			||||||
 | 
						run docker_t push $image
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Remove image to ensure layer is pulled and digest verified
 | 
				
			||||||
 | 
						docker_t rmi -f $image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t pull $image
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test malevolent altered layer (by digest)" {
 | 
				
			||||||
 | 
						imagename="$host/$base/addfile"
 | 
				
			||||||
 | 
						image="$imagename:latest"
 | 
				
			||||||
 | 
						tempImage $image
 | 
				
			||||||
 | 
						run docker_t push $image
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Remove image to ensure layer is pulled and digest verified
 | 
				
			||||||
 | 
						docker_t rmi -f $image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t pull "$imagename@$digest"
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test malevolent poisoned images" {
 | 
				
			||||||
 | 
					        truncid="777cf9284131"
 | 
				
			||||||
 | 
						poison="${truncid}d77ca0863fb7f054c0a276d7e227b5e9a5d62b497979a481fa32"
 | 
				
			||||||
 | 
						image1="$host/$base/image1/poison:$poison"
 | 
				
			||||||
 | 
						tempImage $image1
 | 
				
			||||||
 | 
						run docker_t push $image1
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						image2="$host/$base/image2/poison:$poison"
 | 
				
			||||||
 | 
						tempImage $image2
 | 
				
			||||||
 | 
						run docker_t push $image2
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Remove image to ensure layer is pulled and digest verified
 | 
				
			||||||
 | 
						docker_t rmi -f $image1
 | 
				
			||||||
 | 
						docker_t rmi -f $image2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t pull $image1
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						run docker_t pull $image2
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Test if there are multiple images
 | 
				
			||||||
 | 
						run docker_t images
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Test images have same ID and not the poison
 | 
				
			||||||
 | 
						id1=$(docker_t inspect --format="{{.Id}}" $image1)
 | 
				
			||||||
 | 
						id2=$(docker_t inspect --format="{{.Id}}" $image2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Remove old images
 | 
				
			||||||
 | 
						docker_t rmi -f $image1
 | 
				
			||||||
 | 
						docker_t rmi -f $image2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$id1" != "$id2" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$id1" != "$truncid" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$id2" != "$truncid" ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test malevolent altered identical images" {
 | 
				
			||||||
 | 
					        truncid1="777cf9284131"
 | 
				
			||||||
 | 
						poison1="${truncid1}d77ca0863fb7f054c0a276d7e227b5e9a5d62b497979a481fa32"
 | 
				
			||||||
 | 
					        truncid2="888cf9284131"
 | 
				
			||||||
 | 
						poison2="${truncid2}d77ca0863fb7f054c0a276d7e227b5e9a5d62b497979a481fa64"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						image1="$host/$base/image1/alteredid:$poison1"
 | 
				
			||||||
 | 
						tempImage $image1
 | 
				
			||||||
 | 
						run docker_t push $image1
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						image2="$host/$base/image2/alteredid:$poison2"
 | 
				
			||||||
 | 
						docker_t tag -f $image1 $image2
 | 
				
			||||||
 | 
						run docker_t push $image2
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Remove image to ensure layer is pulled and digest verified
 | 
				
			||||||
 | 
						docker_t rmi -f $image1
 | 
				
			||||||
 | 
						docker_t rmi -f $image2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t pull $image1
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						run docker_t pull $image2
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Test if there are multiple images
 | 
				
			||||||
 | 
						run docker_t images
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Test images have same ID and not the poison
 | 
				
			||||||
 | 
						id1=$(docker_t inspect --format="{{.Id}}" $image1)
 | 
				
			||||||
 | 
						id2=$(docker_t inspect --format="{{.Id}}" $image2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Remove old images
 | 
				
			||||||
 | 
						docker_t rmi -f $image1
 | 
				
			||||||
 | 
						docker_t rmi -f $image2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$id1" == "$id2" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$id1" != "$truncid1" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$id2" != "$truncid2" ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test malevolent resumeable pull" {
 | 
				
			||||||
 | 
						version_check docker "$GOLEM_DIND_VERSION" "1.11.0"
 | 
				
			||||||
 | 
						version_check registry "$GOLEM_DISTRIBUTION_VERSION" "2.3.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						imagename="$host/$base/resumeable"
 | 
				
			||||||
 | 
						image="$imagename:latest"
 | 
				
			||||||
 | 
						tempImage $image
 | 
				
			||||||
 | 
						run docker_t push $image
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Remove image to ensure layer is pulled and digest verified
 | 
				
			||||||
 | 
						docker_t rmi -f $image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t pull "$imagename@$digest"
 | 
				
			||||||
 | 
						echo "$output"
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,6 @@ FROM nginx:1.9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY nginx.conf /etc/nginx/nginx.conf
 | 
					COPY nginx.conf /etc/nginx/nginx.conf
 | 
				
			||||||
COPY registry.conf /etc/nginx/conf.d/registry.conf
 | 
					COPY registry.conf /etc/nginx/conf.d/registry.conf
 | 
				
			||||||
COPY docker-registry.conf /etc/nginx/docker-registry.conf
 | 
					 | 
				
			||||||
COPY docker-registry-v2.conf /etc/nginx/docker-registry-v2.conf
 | 
					COPY docker-registry-v2.conf /etc/nginx/docker-registry-v2.conf
 | 
				
			||||||
COPY registry-noauth.conf /etc/nginx/registry-noauth.conf
 | 
					COPY registry-noauth.conf /etc/nginx/registry-noauth.conf
 | 
				
			||||||
COPY registry-basic.conf /etc/nginx/registry-basic.conf
 | 
					COPY registry-basic.conf /etc/nginx/registry-basic.conf
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
proxy_pass                          http://docker-registry;
 | 
					 | 
				
			||||||
proxy_set_header  Host              $http_host;   # required for docker client's sake
 | 
					 | 
				
			||||||
proxy_set_header  X-Real-IP         $remote_addr; # pass on real client's IP
 | 
					 | 
				
			||||||
proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
 | 
					 | 
				
			||||||
proxy_set_header  X-Forwarded-Proto $scheme;
 | 
					 | 
				
			||||||
proxy_set_header  Authorization     ""; # see https://github.com/docker/docker-registry/issues/170
 | 
					 | 
				
			||||||
proxy_read_timeout                  900;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -25,3 +25,37 @@ http {
 | 
				
			||||||
    include /etc/nginx/conf.d/*.conf;
 | 
					    include /etc/nginx/conf.d/*.conf;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Setup TCP proxies
 | 
				
			||||||
 | 
					stream {
 | 
				
			||||||
 | 
					  # Malevolent proxy
 | 
				
			||||||
 | 
					  server {
 | 
				
			||||||
 | 
					    listen     6666;
 | 
				
			||||||
 | 
					    proxy_pass malevolent:6666;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Registry configured for token server
 | 
				
			||||||
 | 
					  server {
 | 
				
			||||||
 | 
					    listen     5554;
 | 
				
			||||||
 | 
					    listen     5555;
 | 
				
			||||||
 | 
					    proxy_pass registryv2token:5000;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Token server
 | 
				
			||||||
 | 
					  server {
 | 
				
			||||||
 | 
					    listen     5556;
 | 
				
			||||||
 | 
					    proxy_pass tokenserver:5556;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Registry configured for token server with oauth
 | 
				
			||||||
 | 
					  server {
 | 
				
			||||||
 | 
					    listen     5557;
 | 
				
			||||||
 | 
					    listen     5558;
 | 
				
			||||||
 | 
					    proxy_pass registryv2tokenoauth:5000;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Token server with oauth
 | 
				
			||||||
 | 
					  server {
 | 
				
			||||||
 | 
					    listen     5559;
 | 
				
			||||||
 | 
					    proxy_pass tokenserveroauth:5559;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,8 +6,3 @@ location /v2/ {
 | 
				
			||||||
  add_header 'Docker-Distribution-Api-Version' 'registry/2.0' always;
 | 
					  add_header 'Docker-Distribution-Api-Version' 'registry/2.0' always;
 | 
				
			||||||
  include               docker-registry-v2.conf;
 | 
					  include               docker-registry-v2.conf;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
location / {
 | 
					 | 
				
			||||||
  auth_basic "registry.localhost";
 | 
					 | 
				
			||||||
  auth_basic_user_file test.passwd;
 | 
					 | 
				
			||||||
  include               docker-registry.conf;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,3 @@ chunked_transfer_encoding on;
 | 
				
			||||||
location /v2/ {
 | 
					location /v2/ {
 | 
				
			||||||
  include               docker-registry-v2.conf;
 | 
					  include               docker-registry-v2.conf;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
location / {
 | 
					 | 
				
			||||||
  include               docker-registry.conf;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,4 @@
 | 
				
			||||||
# Docker registry proxy for api versions 1 and 2
 | 
					# Docker registry proxy for api version 2
 | 
				
			||||||
 | 
					 | 
				
			||||||
upstream docker-registry {
 | 
					 | 
				
			||||||
  server registryv1:5000;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
upstream docker-registry-v2 {
 | 
					upstream docker-registry-v2 {
 | 
				
			||||||
  server registryv2:5000;
 | 
					  server registryv2:5000;
 | 
				
			||||||
| 
						 | 
					@ -28,26 +24,6 @@ server {
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    include               docker-registry-v2.conf;
 | 
					    include               docker-registry-v2.conf;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  location / {
 | 
					 | 
				
			||||||
    include               docker-registry.conf;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# No client auth or TLS (V1 Only)
 | 
					 | 
				
			||||||
server {
 | 
					 | 
				
			||||||
  listen 5001;
 | 
					 | 
				
			||||||
  server_name localhost;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # disable any limits to avoid HTTP 413 for large image uploads
 | 
					 | 
				
			||||||
  client_max_body_size 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # required to avoid HTTP 411: see Issue #1486 (https://github.com/docker/docker/issues/1486)
 | 
					 | 
				
			||||||
  chunked_transfer_encoding on;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  location / {
 | 
					 | 
				
			||||||
    include               docker-registry.conf;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# No client auth or TLS (V2 Only)
 | 
					# No client auth or TLS (V2 Only)
 | 
				
			||||||
| 
						 | 
					@ -66,38 +42,6 @@ server {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# TLS localhost (V1 Only)
 | 
					 | 
				
			||||||
server {
 | 
					 | 
				
			||||||
  listen 5011;
 | 
					 | 
				
			||||||
  server_name localhost;
 | 
					 | 
				
			||||||
  ssl on;
 | 
					 | 
				
			||||||
  ssl_certificate /etc/nginx/ssl/registry-ca+localhost-cert.pem;
 | 
					 | 
				
			||||||
  ssl_certificate_key /etc/nginx/ssl/registry-ca+localhost-key.pem;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  client_max_body_size 0;
 | 
					 | 
				
			||||||
  chunked_transfer_encoding on;
 | 
					 | 
				
			||||||
  location / {
 | 
					 | 
				
			||||||
    include               docker-registry.conf;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# TLS localregistry (V1 Only)
 | 
					 | 
				
			||||||
server {
 | 
					 | 
				
			||||||
  listen 5011;
 | 
					 | 
				
			||||||
  server_name localregistry;
 | 
					 | 
				
			||||||
  ssl on;
 | 
					 | 
				
			||||||
  ssl_certificate /etc/nginx/ssl/registry-ca+localregistry-cert.pem;
 | 
					 | 
				
			||||||
  ssl_certificate_key /etc/nginx/ssl/registry-ca+localregistry-key.pem;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  client_max_body_size 0;
 | 
					 | 
				
			||||||
  chunked_transfer_encoding on;
 | 
					 | 
				
			||||||
  location / {
 | 
					 | 
				
			||||||
    include               docker-registry.conf;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# TLS Configuration chart
 | 
					# TLS Configuration chart
 | 
				
			||||||
# Username/Password: testuser/passpassword
 | 
					# Username/Password: testuser/passpassword
 | 
				
			||||||
#      | ca  | client | basic | notes
 | 
					#      | ca  | client | basic | notes
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,75 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
set -x
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source helpers.bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Root directory of Distribution
 | 
					 | 
				
			||||||
DISTRIBUTION_ROOT=$(cd ../..; pwd -P)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
volumeMount=""
 | 
					 | 
				
			||||||
if [ "$DOCKER_VOLUME" != "" ]; then
 | 
					 | 
				
			||||||
	volumeMount="-v ${DOCKER_VOLUME}:/var/lib/docker"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dockerMount=""
 | 
					 | 
				
			||||||
if [ "$DOCKER_BINARY" != "" ]; then
 | 
					 | 
				
			||||||
	dockerMount="-v ${DOCKER_BINARY}:/usr/local/bin/docker"
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
	DOCKER_BINARY=docker
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Image containing the integration tests environment.
 | 
					 | 
				
			||||||
INTEGRATION_IMAGE=${INTEGRATION_IMAGE:-distribution/docker-integration}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ "$1" == "-d" ]; then
 | 
					 | 
				
			||||||
	start_daemon
 | 
					 | 
				
			||||||
	shift
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TESTS=${@:-.}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make sure we upgrade the integration environment.
 | 
					 | 
				
			||||||
docker pull $INTEGRATION_IMAGE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Start a Docker engine inside a docker container
 | 
					 | 
				
			||||||
ID=$(docker run -d -it --privileged $volumeMount $dockerMount \
 | 
					 | 
				
			||||||
	-v ${DISTRIBUTION_ROOT}:/go/src/github.com/docker/distribution \
 | 
					 | 
				
			||||||
	-e "DOCKER_GRAPHDRIVER=$DOCKER_GRAPHDRIVER" \
 | 
					 | 
				
			||||||
	${INTEGRATION_IMAGE} \
 | 
					 | 
				
			||||||
	./run_engine.sh)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Stop container on exit
 | 
					 | 
				
			||||||
trap "docker rm -f -v $ID" EXIT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Wait for it to become reachable.
 | 
					 | 
				
			||||||
tries=10
 | 
					 | 
				
			||||||
until docker exec "$ID" docker version &> /dev/null; do
 | 
					 | 
				
			||||||
	(( tries-- ))
 | 
					 | 
				
			||||||
	if [ $tries -le 0 ]; then
 | 
					 | 
				
			||||||
		echo >&2 "error: daemon failed to start"
 | 
					 | 
				
			||||||
		exit 1
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	sleep 1
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# If no volume is specified, transfer images into the container from
 | 
					 | 
				
			||||||
# the outer docker instance
 | 
					 | 
				
			||||||
if [ "$DOCKER_VOLUME" == "" ]; then
 | 
					 | 
				
			||||||
	# Make sure we have images outside the container, to transfer to the container.
 | 
					 | 
				
			||||||
	# Not much will happen here if the images are already present.
 | 
					 | 
				
			||||||
	docker-compose pull
 | 
					 | 
				
			||||||
	docker-compose build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Transfer images to the inner container.
 | 
					 | 
				
			||||||
	for image in "$INTEGRATION_IMAGE" registry:0.9.1 dockerintegration_nginx dockerintegration_registryv2; do
 | 
					 | 
				
			||||||
		docker save "$image" | docker exec -i "$ID" docker load
 | 
					 | 
				
			||||||
	done
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Run the tests.
 | 
					 | 
				
			||||||
docker exec -it "$ID" sh -c "./test_runner.sh $TESTS"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,23 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
set -x
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-overlay}
 | 
					 | 
				
			||||||
EXEC_DRIVER=${EXEC_DRIVER:-native}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set IP address in /etc/hosts for localregistry
 | 
					 | 
				
			||||||
IP=$(ifconfig eth0|grep "inet addr:"| cut -d: -f2 | awk '{ print $1}')
 | 
					 | 
				
			||||||
echo "$IP localregistry" >> /etc/hosts
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sh install_certs.sh localregistry
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DOCKER_VERSION=$(docker --version | cut -d ' ' -f3 | cut -d ',' -f1)
 | 
					 | 
				
			||||||
major=$(echo "$DOCKER_VERSION"| cut -d '.' -f1)
 | 
					 | 
				
			||||||
minor=$(echo "$DOCKER_VERSION"| cut -d '.' -f2)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
daemonOpts="daemon"
 | 
					 | 
				
			||||||
if [ $major -le 1 ] && [ $minor -lt 9 ]; then
 | 
					 | 
				
			||||||
	daemonOpts="--daemon"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
docker $daemonOpts --log-level=debug --storage-driver="$DOCKER_GRAPHDRIVER"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -5,49 +5,60 @@
 | 
				
			||||||
set -e
 | 
					set -e
 | 
				
			||||||
set -x
 | 
					set -x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source helpers.bash
 | 
					DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ `uname` = "Linux" ]; then
 | 
					
 | 
				
			||||||
	tmpdir_template="$TMPDIR/docker-versions.XXXXX"
 | 
					if [ "$TMPDIR" != "" ] && [ ! -d "$TMPDIR" ]; then
 | 
				
			||||||
else
 | 
						mkdir -p $TMPDIR
 | 
				
			||||||
	# /tmp isn't available for mounting in boot2docker
 | 
					 | 
				
			||||||
	tmpdir_template="`pwd`/../../../docker-versions.XXXXX"
 | 
					 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tmpdir=`mktemp -d "$tmpdir_template"`
 | 
					cachedir=`mktemp -t -d golem-cache.XXXXXX`
 | 
				
			||||||
trap "rm -rf $tmpdir" EXIT
 | 
					trap "rm -rf $cachedir" EXIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ "$1" == "-d" ]; then
 | 
					if [ "$1" == "-d" ]; then
 | 
				
			||||||
	start_daemon
 | 
					       # Drivers to use for Docker engines the tests are going to create.
 | 
				
			||||||
 | 
					       STORAGE_DRIVER=${STORAGE_DRIVER:-overlay}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       docker daemon --log-level=panic --storage-driver="$STORAGE_DRIVER" &
 | 
				
			||||||
 | 
					       DOCKER_PID=$!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       # Wait for it to become reachable.
 | 
				
			||||||
 | 
					       tries=10
 | 
				
			||||||
 | 
					       until docker version &> /dev/null; do
 | 
				
			||||||
 | 
					               (( tries-- ))
 | 
				
			||||||
 | 
					               if [ $tries -le 0 ]; then
 | 
				
			||||||
 | 
					                       echo >&2 "error: daemon failed to start"
 | 
				
			||||||
 | 
					                       exit 1
 | 
				
			||||||
 | 
					               fi
 | 
				
			||||||
 | 
					               sleep 1
 | 
				
			||||||
 | 
					       done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       trap "kill $DOCKER_PID" EXIT
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Released versions
 | 
					distimage=$(docker build -q $DIR/../..)
 | 
				
			||||||
 | 
					fullversion=$(git describe --match 'v[0-9]*' --dirty='.m' --always)
 | 
				
			||||||
 | 
					distversion=${fullversion:1}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
versions="1.6.1 1.7.1 1.8.3 1.9.1"
 | 
					echo "Testing image $distimage with distribution version $distversion"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for v in $versions; do
 | 
					# Pull needed images before invoking golem to get pull time
 | 
				
			||||||
	echo "Extracting Docker $v from dind image"
 | 
					# These images are defined in golem.conf
 | 
				
			||||||
	binpath="$tmpdir/docker-$v/docker"
 | 
					time docker pull nginx:1.9
 | 
				
			||||||
	ID=$(docker create dockerswarm/dind:$v)
 | 
					time docker pull golang:1.6
 | 
				
			||||||
	docker cp "$ID:/usr/local/bin/docker" "$tmpdir/docker-$v"
 | 
					time docker pull registry:0.9.1
 | 
				
			||||||
 | 
					time docker pull dmcgowan/token-server:simple
 | 
				
			||||||
 | 
					time docker pull dmcgowan/token-server:oauth
 | 
				
			||||||
 | 
					time docker pull distribution/golem-runner:0.1-bats
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	echo "Running tests with Docker $v"
 | 
					time docker pull docker:1.9.1-dind
 | 
				
			||||||
	DOCKER_BINARY="$binpath" DOCKER_VOLUME="$DOCKER_VOLUME" DOCKER_GRAPHDRIVER="$DOCKER_GRAPHDRIVER" ./run.sh
 | 
					time docker pull docker:1.10.3-dind
 | 
				
			||||||
 | 
					time docker pull dockerswarm/dind:1.11.0-rc2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# Cleanup.
 | 
					golem -cache $cachedir \
 | 
				
			||||||
	docker rm -f "$ID"
 | 
						-i "golem-distribution:latest,$distimage,$distversion" \
 | 
				
			||||||
done
 | 
						-i "golem-dind:latest,docker:1.9.1-dind,1.9.1" \
 | 
				
			||||||
 | 
						-i "golem-dind:latest,docker:1.10.3-dind,1.10.3" \
 | 
				
			||||||
 | 
						-i "golem-dind:latest,dockerswarm/dind:1.11.0-rc2,1.11.0" \
 | 
				
			||||||
 | 
						$DIR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Latest experimental version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo "Extracting Docker master from dind image"
 | 
					 | 
				
			||||||
binpath="$tmpdir/docker-master/docker"
 | 
					 | 
				
			||||||
docker pull dockerswarm/dind-master
 | 
					 | 
				
			||||||
ID=$(docker create dockerswarm/dind-master)
 | 
					 | 
				
			||||||
docker cp "$ID:/usr/local/bin/docker" "$tmpdir/docker-master"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo "Running tests with Docker master"
 | 
					 | 
				
			||||||
DOCKER_BINARY="$binpath" DOCKER_VOLUME="$DOCKER_VOLUME" ./run.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Cleanup.
 | 
					 | 
				
			||||||
docker rm -f "$ID"
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TESTS=${@:-.}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function execute() {
 | 
					 | 
				
			||||||
	>&2 echo "++ $@"
 | 
					 | 
				
			||||||
	eval "$@"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
execute time docker-compose build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
execute docker-compose up -d
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Run the tests.
 | 
					 | 
				
			||||||
execute time bats -p $TESTS
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,44 +1,26 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env bats
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Registry host name, should be set to non-localhost address and match
 | 
					# Registry host name, should be set to non-localhost address and match
 | 
				
			||||||
# DNS name in nginx/ssl certificates and what is installed in /etc/docker/cert.d
 | 
					# DNS name in nginx/ssl certificates and what is installed in /etc/docker/cert.d
 | 
				
			||||||
hostname="localregistry"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
image="hello-world:latest"
 | 
					load helpers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					hostname="localregistry"
 | 
				
			||||||
 | 
					base="hello-world"
 | 
				
			||||||
 | 
					image="${base}:latest"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Login information, should match values in nginx/test.passwd
 | 
					# Login information, should match values in nginx/test.passwd
 | 
				
			||||||
user="testuser"
 | 
					user=${TEST_USER:-"testuser"}
 | 
				
			||||||
password="passpassword"
 | 
					password=${TEST_PASSWORD:-"passpassword"}
 | 
				
			||||||
email="distribution@docker.com"
 | 
					email="distribution@docker.com"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function setup() {
 | 
					function setup() {
 | 
				
			||||||
	docker pull $image
 | 
						tempImage $image
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# skip basic auth tests with Docker 1.6, where they don't pass due to
 | 
					 | 
				
			||||||
# certificate issues
 | 
					 | 
				
			||||||
function basic_auth_version_check() {
 | 
					 | 
				
			||||||
	run sh -c 'docker version | fgrep -q "Client version: 1.6."'
 | 
					 | 
				
			||||||
	if [ "$status" -eq 0 ]; then
 | 
					 | 
				
			||||||
		skip "Basic auth tests don't support 1.6.x"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# has_digest enforces the last output line is "Digest: sha256:..."
 | 
					 | 
				
			||||||
# the input is the name of the array containing the output lines
 | 
					 | 
				
			||||||
function has_digest() {
 | 
					 | 
				
			||||||
	filtered=$(echo "$1" |sed -rn '/[dD]igest\: sha(256|384|512)/ p')
 | 
					 | 
				
			||||||
	[ "$filtered" != "" ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function login() {
 | 
					 | 
				
			||||||
	run docker login -u $user -p $password -e $email $1
 | 
					 | 
				
			||||||
	[ "$status" -eq 0 ]
 | 
					 | 
				
			||||||
	# First line is WARNING about credential save
 | 
					 | 
				
			||||||
	[ "${lines[1]}" = "Login Succeeded" ]
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@test "Test valid certificates" {
 | 
					@test "Test valid certificates" {
 | 
				
			||||||
	docker tag -f $image $hostname:5440/$image
 | 
						docker_t tag -f $image $hostname:5440/$image
 | 
				
			||||||
	run docker push $hostname:5440/$image
 | 
						run docker_t push $hostname:5440/$image
 | 
				
			||||||
	[ "$status" -eq 0 ]
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
	has_digest "$output"
 | 
						has_digest "$output"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -46,57 +28,82 @@ function login() {
 | 
				
			||||||
@test "Test basic auth" {
 | 
					@test "Test basic auth" {
 | 
				
			||||||
	basic_auth_version_check
 | 
						basic_auth_version_check
 | 
				
			||||||
	login $hostname:5441
 | 
						login $hostname:5441
 | 
				
			||||||
	docker tag -f $image $hostname:5441/$image
 | 
						docker_t tag -f $image $hostname:5441/$image
 | 
				
			||||||
	run docker push $hostname:5441/$image
 | 
						run docker_t push $hostname:5441/$image
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test basic auth with build" {
 | 
				
			||||||
 | 
						basic_auth_version_check
 | 
				
			||||||
 | 
						login $hostname:5441
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						image1=$hostname:5441/$image-build
 | 
				
			||||||
 | 
						image2=$hostname:5441/$image-build-2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tempImage $image1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t push $image1
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						docker_t rmi $image1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run build $image2 $image1
 | 
				
			||||||
 | 
						echo $output
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t push $image2
 | 
				
			||||||
 | 
						echo $output
 | 
				
			||||||
	[ "$status" -eq 0 ]
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
	has_digest "$output"
 | 
						has_digest "$output"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@test "Test TLS client auth" {
 | 
					@test "Test TLS client auth" {
 | 
				
			||||||
	docker tag -f $image $hostname:5442/$image
 | 
						docker_t tag -f $image $hostname:5442/$image
 | 
				
			||||||
	run docker push $hostname:5442/$image
 | 
						run docker_t push $hostname:5442/$image
 | 
				
			||||||
	[ "$status" -eq 0 ]
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
	has_digest "$output"
 | 
						has_digest "$output"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@test "Test TLS client with invalid certificate authority fails" {
 | 
					@test "Test TLS client with invalid certificate authority fails" {
 | 
				
			||||||
	docker tag -f $image $hostname:5443/$image
 | 
						docker_t tag -f $image $hostname:5443/$image
 | 
				
			||||||
	run docker push $hostname:5443/$image
 | 
						run docker_t push $hostname:5443/$image
 | 
				
			||||||
	[ "$status" -ne 0 ]
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@test "Test basic auth with TLS client auth" {
 | 
					@test "Test basic auth with TLS client auth" {
 | 
				
			||||||
	basic_auth_version_check
 | 
						basic_auth_version_check
 | 
				
			||||||
	login $hostname:5444
 | 
						login $hostname:5444
 | 
				
			||||||
	docker tag -f $image $hostname:5444/$image
 | 
						docker_t tag -f $image $hostname:5444/$image
 | 
				
			||||||
	run docker push $hostname:5444/$image
 | 
						run docker_t push $hostname:5444/$image
 | 
				
			||||||
	[ "$status" -eq 0 ]
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
	has_digest "$output"
 | 
						has_digest "$output"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@test "Test unknown certificate authority fails" {
 | 
					@test "Test unknown certificate authority fails" {
 | 
				
			||||||
	docker tag -f $image $hostname:5445/$image
 | 
						docker_t tag -f $image $hostname:5445/$image
 | 
				
			||||||
	run docker push $hostname:5445/$image
 | 
						run docker_t push $hostname:5445/$image
 | 
				
			||||||
	[ "$status" -ne 0 ]
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@test "Test basic auth with unknown certificate authority fails" {
 | 
					@test "Test basic auth with unknown certificate authority fails" {
 | 
				
			||||||
	run login $hostname:5446
 | 
						run login $hostname:5446
 | 
				
			||||||
	[ "$status" -ne 0 ]
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
	docker tag -f $image $hostname:5446/$image
 | 
						docker_t tag -f $image $hostname:5446/$image
 | 
				
			||||||
	run docker push $hostname:5446/$image
 | 
						run docker_t push $hostname:5446/$image
 | 
				
			||||||
	[ "$status" -ne 0 ]
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@test "Test TLS client auth to server with unknown certificate authority fails" {
 | 
					@test "Test TLS client auth to server with unknown certificate authority fails" {
 | 
				
			||||||
	docker tag -f $image $hostname:5447/$image
 | 
						docker_t tag -f $image $hostname:5447/$image
 | 
				
			||||||
	run docker push $hostname:5447/$image
 | 
						run docker_t push $hostname:5447/$image
 | 
				
			||||||
	[ "$status" -ne 0 ]
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@test "Test failure to connect to server fails to fallback to SSLv3" {
 | 
					@test "Test failure to connect to server fails to fallback to SSLv3" {
 | 
				
			||||||
	docker tag -f $image $hostname:5448/$image
 | 
						docker_t tag -f $image $hostname:5448/$image
 | 
				
			||||||
	run docker push $hostname:5448/$image
 | 
						run docker_t push $hostname:5448/$image
 | 
				
			||||||
	[ "$status" -ne 0 ]
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,119 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env bats
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This tests contacting a registry using a token server
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					load helpers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					user="testuser"
 | 
				
			||||||
 | 
					password="testpassword"
 | 
				
			||||||
 | 
					email="a@nowhere.com"
 | 
				
			||||||
 | 
					base="hello-world"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test token server login" {
 | 
				
			||||||
 | 
						run docker_t login -u $user -p $password -e $email localregistry:5554
 | 
				
			||||||
 | 
						echo $output
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# First line is WARNING about credential save or email deprecation
 | 
				
			||||||
 | 
						[ "${lines[2]}" = "Login Succeeded" -o "${lines[1]}" = "Login Succeeded" ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test token server bad login" {
 | 
				
			||||||
 | 
						run docker_t login -u "testuser" -p "badpassword" -e $email localregistry:5554
 | 
				
			||||||
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t login -u "baduser" -p "testpassword" -e $email localregistry:5554
 | 
				
			||||||
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test push and pull with token auth" {
 | 
				
			||||||
 | 
						login localregistry:5555
 | 
				
			||||||
 | 
						image="localregistry:5555/testuser/token"
 | 
				
			||||||
 | 
						build $image "$base:latest"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t push $image
 | 
				
			||||||
 | 
						echo $output
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						docker_t rmi $image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						docker_t pull $image
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test push and pull with token auth wrong namespace" {
 | 
				
			||||||
 | 
						login localregistry:5555
 | 
				
			||||||
 | 
						image="localregistry:5555/notuser/token"
 | 
				
			||||||
 | 
						build $image "$base:latest"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t push $image
 | 
				
			||||||
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test oauth token server login" {
 | 
				
			||||||
 | 
						version_check docker "$GOLEM_DIND_VERSION" "1.11.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						login_oauth localregistry:5557
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test oauth token server bad login" {
 | 
				
			||||||
 | 
						version_check docker "$GOLEM_DIND_VERSION" "1.11.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t login -u "testuser" -p "badpassword" -e $email localregistry:5557
 | 
				
			||||||
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t login -u "baduser" -p "testpassword" -e $email localregistry:5557
 | 
				
			||||||
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test oauth push and pull with token auth" {
 | 
				
			||||||
 | 
						version_check docker "$GOLEM_DIND_VERSION" "1.11.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						login_oauth localregistry:5558
 | 
				
			||||||
 | 
						image="localregistry:5558/testuser/token"
 | 
				
			||||||
 | 
						build $image "$base:latest"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t push $image
 | 
				
			||||||
 | 
						echo $output
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						docker_t rmi $image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						docker_t pull $image
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test oauth push and build with token auth" {
 | 
				
			||||||
 | 
						version_check docker "$GOLEM_DIND_VERSION" "1.11.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						login_oauth localregistry:5558
 | 
				
			||||||
 | 
						image="localregistry:5558/testuser/token-build"
 | 
				
			||||||
 | 
						tempImage $image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t push $image
 | 
				
			||||||
 | 
						echo $output
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						docker_t rmi $image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						image2="localregistry:5558/testuser/token-build-2"
 | 
				
			||||||
 | 
						run build $image2 $image
 | 
				
			||||||
 | 
						echo $output
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t push $image2
 | 
				
			||||||
 | 
						echo $output
 | 
				
			||||||
 | 
						[ "$status" -eq 0 ]
 | 
				
			||||||
 | 
						has_digest "$output"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@test "Test oauth push and pull with token auth wrong namespace" {
 | 
				
			||||||
 | 
						version_check docker "$GOLEM_DIND_VERSION" "1.11.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						login_oauth localregistry:5558
 | 
				
			||||||
 | 
						image="localregistry:5558/notuser/token"
 | 
				
			||||||
 | 
						build $image "$base:latest"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						run docker_t push $image
 | 
				
			||||||
 | 
						[ "$status" -ne 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					testuser:$2y$05$T2MlBvkN1R/yICNnLuf1leOlOfAY0DvybctbbWUFKlojfkShVgn4m
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					FROM dmcgowan/token-server:oauth
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WORKDIR /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY ./.htpasswd /.htpasswd
 | 
				
			||||||
 | 
					COPY ./certs/auth.localregistry.cert /tls.cert
 | 
				
			||||||
 | 
					COPY ./certs/auth.localregistry.key /tls.key
 | 
				
			||||||
 | 
					COPY ./certs/signing.key /sign.key
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIDHDCCAgagAwIBAgIRAKhhQMnqZx+hkOmoUYgPb+kwCwYJKoZIhvcNAQELMCYx
 | 
				
			||||||
 | 
					ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNjAxMjgw
 | 
				
			||||||
 | 
					MDQyMzFaFw0xOTAxMTIwMDQyMzFaMDAxETAPBgNVBAoTCFF1aWNrVExTMRswGQYD
 | 
				
			||||||
 | 
					VQQDExJhdXRoLmxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
 | 
				
			||||||
 | 
					ggEKAoIBAQD1tUf1EghBlIRrE83yF4zDgRu7vH2Jo0kygKJUWtQQe+DfXyjjE/fg
 | 
				
			||||||
 | 
					FdKnnoEjsIeF9hxNbTt0ldDz7/n97pbMhoiXULi9iq4jlgSzVL2XEAgrON0YSY/c
 | 
				
			||||||
 | 
					Lmmd1KSa/pOUZr2WMAYPZ+FdQfE1W7SMNbErPefBqYdFzpZ+esAtvbajYwIjl8Vy
 | 
				
			||||||
 | 
					9c4bidx4vgnNrR9GcFYibjC5sj8syh/OtbzzqiVGT8YcPpmMG6KNRkausa4gqpon
 | 
				
			||||||
 | 
					NKYG8C3WDaiPCLYKcvFrFfdEWF/m2oj14eXACXT9iwp8r4bsLgXrZwqcpKOWfVRu
 | 
				
			||||||
 | 
					qHC8aV476EYgxWCAOANExUdUaRt5wL/jAgMBAAGjPzA9MA4GA1UdDwEB/wQEAwIA
 | 
				
			||||||
 | 
					oDAMBgNVHRMBAf8EAjAAMB0GA1UdEQQWMBSCEmF1dGgubG9jYWxyZWdpc3RyeTAL
 | 
				
			||||||
 | 
					BgkqhkiG9w0BAQsDggEBABxPGK9FdGDxcLowNsExKnnZvmQT3H0u+Dux1gkp0AhH
 | 
				
			||||||
 | 
					KOrmx3LUENUKLSgotzx133tgOgR5lzAWVFy7bhLwlPhOslxf2oEfztsAMd/tY8rW
 | 
				
			||||||
 | 
					PrG2ZqYqlzEQQ9INbAc3woo5A3slN07uhP3F16jNqoMM4zRmw6Ba70CluGKT7x5+
 | 
				
			||||||
 | 
					xVjKoWITLjWDXT5m35PnsN8CpBaFzXYcod/5p9XwCFp0s+aNxfpZECCV/3yqIr+J
 | 
				
			||||||
 | 
					ALzroPh43FAlG96o4NyYZ2Msp63newN19R2+TgpV4nXuw2mLVDpvetP7RRqnpvj/
 | 
				
			||||||
 | 
					qwRgt5j4hFjJWb61M0ELL7A9fA71h1ImdGCvnArdBQs=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIEpAIBAAKCAQEA9bVH9RIIQZSEaxPN8heMw4Ebu7x9iaNJMoCiVFrUEHvg318o
 | 
				
			||||||
 | 
					4xP34BXSp56BI7CHhfYcTW07dJXQ8+/5/e6WzIaIl1C4vYquI5YEs1S9lxAIKzjd
 | 
				
			||||||
 | 
					GEmP3C5pndSkmv6TlGa9ljAGD2fhXUHxNVu0jDWxKz3nwamHRc6WfnrALb22o2MC
 | 
				
			||||||
 | 
					I5fFcvXOG4nceL4Jza0fRnBWIm4wubI/LMofzrW886olRk/GHD6ZjBuijUZGrrGu
 | 
				
			||||||
 | 
					IKqaJzSmBvAt1g2ojwi2CnLxaxX3RFhf5tqI9eHlwAl0/YsKfK+G7C4F62cKnKSj
 | 
				
			||||||
 | 
					ln1UbqhwvGleO+hGIMVggDgDRMVHVGkbecC/4wIDAQABAoIBAQCrsjXKRwOF8CZo
 | 
				
			||||||
 | 
					PLqZBWPT6hBbK+f9miC4LbNBhwbRTf9hl7mWlImOCTHe95/+NIk/Ty+P21jEqzwM
 | 
				
			||||||
 | 
					ehETJPoziX9BXaL6sEHnlBlMx1aEjStoKKA3LJBeqAAdzk4IEQVHmlO4824IreqJ
 | 
				
			||||||
 | 
					pF7Njnunzo0zTlr4tWJVoXsAfv5z9tNtdkxYBbIa0fjfGtlqXU3gLq58FCON3mB/
 | 
				
			||||||
 | 
					NGc0AyA1UFGp0FzpdEcwTGD4InsXbcmsl2l/VPBJuZbryITRqWs6BbK++80DRhNt
 | 
				
			||||||
 | 
					afMhP+IzKrWSCp0rBYrqqz6AevtlKdEfQK1yXPEjN/63QLMevt8mF/1JCp//TQnf
 | 
				
			||||||
 | 
					Z6bIQbAhAoGBAP7vFA0PcvoXt9MXvvAwrKY1s6pNw4nWPG27qY1/m+DkBwP8IQms
 | 
				
			||||||
 | 
					4AWGv1wscZzXJYTvaLO5/qjmGUj50ohcVEvyZJioh1pKXA8Chxvd6rBA/O/Lj5E0
 | 
				
			||||||
 | 
					3MOSA5Q0gxJ0Mhv0zGbbyN5fY8D8zhxoqQP4LoW+UdZG2Oi6JxsQ9c9dAoGBAPa8
 | 
				
			||||||
 | 
					U3bGuM5OGA9EWP7mkB/VnjDTL1aEIN3cOHbHIKwH/loxdYcNMBE7vwxV1CzgIzXT
 | 
				
			||||||
 | 
					wsL0iE15fQdK938u0+um8aH5QtbWNI8tdk1XVjEC/i3C7N6WVUutneCKUDb4QxiB
 | 
				
			||||||
 | 
					9OvWCbNNiN+xTKBBM93YlwO3GYfrW9Pmm9q1+hg/AoGBALJlUS22gun50PxaIJZq
 | 
				
			||||||
 | 
					KVcCO2DQnCYHki/j48mN4+HjD/m85M2lePrFCYIR48syTyIQer9SR5+frVAA6k/b
 | 
				
			||||||
 | 
					9G1VCQo+3MDVSkiCp1Nb3tBKGfYgB65ARMBinDiI6rPuNeaUTrkn0g+yxtaU0hLV
 | 
				
			||||||
 | 
					Nnj9omia/x+oYj+xjI4HN0xNAoGARy92dSJIV104m88ATip/EnAzP6ruUWu1f8z1
 | 
				
			||||||
 | 
					jW9OAdQckjEK03f+kjpGmGx61qekAPejjVO3r4KJi/0ZAtyjz61OsYiUvB748wYO
 | 
				
			||||||
 | 
					x6mW+HUAmHtQk7eTzE2+6vV8xx9BXGTCIPiTu+N2xfMFRIcLS8odZ7j/6LMCv1Qd
 | 
				
			||||||
 | 
					SzCNg0kCgYBaNlEs4pK1VxZZpEWwVmFpgIxfEfxLIaGrek6wBTcCn/VA2M0oHuez
 | 
				
			||||||
 | 
					mlMio8VY0yWPBJz30JflDiTmYIvteLPMHT0N0J6isiXLhzJSFI4+cAMLE2Q5v8rz
 | 
				
			||||||
 | 
					W+W5/L8YZeierW0qJat1BrgStaf5ZLpiOc9pKBSwycydPH5BfVdK/A==
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw
 | 
				
			||||||
 | 
					NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf
 | 
				
			||||||
 | 
					fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3
 | 
				
			||||||
 | 
					lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl
 | 
				
			||||||
 | 
					d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD
 | 
				
			||||||
 | 
					L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp
 | 
				
			||||||
 | 
					GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2
 | 
				
			||||||
 | 
					ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/
 | 
				
			||||||
 | 
					BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH
 | 
				
			||||||
 | 
					Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/
 | 
				
			||||||
 | 
					w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2
 | 
				
			||||||
 | 
					x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh
 | 
				
			||||||
 | 
					XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne
 | 
				
			||||||
 | 
					SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIDETCCAfugAwIBAgIQN7rT95eAy75c4n6/AsDJODALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw
 | 
				
			||||||
 | 
					NDIzMloXDTE5MDExMjAwNDIzMlowKzERMA8GA1UEChMIUXVpY2tUTFMxFjAUBgNV
 | 
				
			||||||
 | 
					BAMTDWxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
 | 
				
			||||||
 | 
					AQDLi75QEkl/qekcoOJlNv9y1IXvrbU2ssl4ViJiZRjWx+/CkyCCOyf9YUpAgRLr
 | 
				
			||||||
 | 
					Pskqde2mwhuNP8yBlOBb17Sapz7N3+hJi5j9vLBAFcamPeF3PqxjFv7j5TKkRmSI
 | 
				
			||||||
 | 
					dFYQclREwMUd3qEH322KkqOnsEEfdmCgFqWORe+QR5AxzxQP3Pnd4OYH1yZCh0MQ
 | 
				
			||||||
 | 
					P2pJgrxxf2I5I/m1AUgoHV1cdBbCv9LGohJPpMtwPC0dJpgMFcnf6hT37At236AY
 | 
				
			||||||
 | 
					V437HiRruY7iPWkYFrSPWpwdslJ32MZvRN5RS163jZXjiZ7qWnQOiiDJfXe4evB/
 | 
				
			||||||
 | 
					yQLN4m0qVQxsMz7rkY7OsqaXAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIAoDAMBgNV
 | 
				
			||||||
 | 
					HRMBAf8EAjAAMBgGA1UdEQQRMA+CDWxvY2FscmVnaXN0cnkwCwYJKoZIhvcNAQEL
 | 
				
			||||||
 | 
					A4IBAQAyUb3EuMaOylBeV8+4KeBiE4lxykDOwLLSk3jXRsVVtfJpX3v8l5vwo/Jf
 | 
				
			||||||
 | 
					iG8tzzz+7uiskI96u3TsekUtVkUxujfKevMP+369K/59s7NRmwwlFMyB2fvL14B2
 | 
				
			||||||
 | 
					oweVjWvM/8fZl6irtFdbJFXXRm7paKso5cmfImxhojAwohgcd4XTVLE/7juYa582
 | 
				
			||||||
 | 
					AaBdRuIiyL71MU9qa1mC5+57AaSLPYaPKpahemgYYkV1Z403Kd6rXchxdQ8JIAL8
 | 
				
			||||||
 | 
					+0oYTSC+svnz1tUU/V5E5id9LQaTmDN5iIVFhNpqAaZmR45UI86woWvnkMb8Ants
 | 
				
			||||||
 | 
					4aknwTwY3300PuTqBdQufvOFDRN5
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIEpAIBAAKCAQEAy4u+UBJJf6npHKDiZTb/ctSF7621NrLJeFYiYmUY1sfvwpMg
 | 
				
			||||||
 | 
					gjsn/WFKQIES6z7JKnXtpsIbjT/MgZTgW9e0mqc+zd/oSYuY/bywQBXGpj3hdz6s
 | 
				
			||||||
 | 
					Yxb+4+UypEZkiHRWEHJURMDFHd6hB99tipKjp7BBH3ZgoBaljkXvkEeQMc8UD9z5
 | 
				
			||||||
 | 
					3eDmB9cmQodDED9qSYK8cX9iOSP5tQFIKB1dXHQWwr/SxqIST6TLcDwtHSaYDBXJ
 | 
				
			||||||
 | 
					3+oU9+wLdt+gGFeN+x4ka7mO4j1pGBa0j1qcHbJSd9jGb0TeUUtet42V44me6lp0
 | 
				
			||||||
 | 
					DoogyX13uHrwf8kCzeJtKlUMbDM+65GOzrKmlwIDAQABAoIBAF6vFMp+lz4RteSh
 | 
				
			||||||
 | 
					Wm8m1FGAVwWVUpStOlcGClynFpTi0L88XYT3K7UMStQSttBDlqRv0ysdZF+ia+lj
 | 
				
			||||||
 | 
					bbKLdvHyFp8CJzX/AB4YZgyJlKzEYFtuBhbaHZu5hIMyU5W+OELSTCznV0p7w4C8
 | 
				
			||||||
 | 
					CGLLr+FTdhfCo1QU9NJn6fa9s2/XRdSClBBalAHYs0ZS7ZckaF/sPiC/VapfBMet
 | 
				
			||||||
 | 
					qjJXNYiO6pXYriGWKF9zdAMfk2CM0BVWbnwQZkMSEQirrTcJwm3ezyloXCv2nywK
 | 
				
			||||||
 | 
					/VzbUT1HJVyzo5oAwTd0MwDc2oEMiFzlfO028zY4LDltpia+SyWvFi5NaIqzFESc
 | 
				
			||||||
 | 
					yLgJacECgYEA3jvH+ZQHQf42Md8TCciokaYvwWIKJdk4WRjbvE5cBZekyXAm7/3b
 | 
				
			||||||
 | 
					/1VFDKsy2RPlfmfHP3wy9rlnjzsRveB5qaclgS8aI67AYsWd/yRgfRatl7Ve9bHl
 | 
				
			||||||
 | 
					LY6VM5L/DZTxykcqivwjc77XoDuBfUKs6tyuSLQku+FOTbLtNYlUCHECgYEA6nkR
 | 
				
			||||||
 | 
					lkXufyLmDhNb3093RsYvPcs1kGaIIGTnz3cxWNh485DgsyLBuYQ5ugupQkzM8YSt
 | 
				
			||||||
 | 
					ohDTmVpggqjlXQxCg0Zw8gkEV0v8KsLGjn1CuTJg/mBArXlelq1FEeRAYC9/YfOz
 | 
				
			||||||
 | 
					ocXegHV7wDKKtcraNZFsEc7Z0LwbC9wtzSFG44cCgYASkMX1CLPOhJE8e1lY0OWc
 | 
				
			||||||
 | 
					PVjx++HDJbF6aAQ7aARyBygiF/d4xylw3EvHcinuTqY2eC8CE7siN3z6T0H9Ldqc
 | 
				
			||||||
 | 
					HLWaZDf30SqLVd0MKprQ+GsKKIHFXtY5hxbZ1ybtmIrWjjl0oPnJOqFC5pW7xC0z
 | 
				
			||||||
 | 
					9bmtozcKZxkmjpMYjN9zUQKBgQCqV6KLRerqunPgLfhE1/qTlE+l2QflDFhBEI3I
 | 
				
			||||||
 | 
					j5NuNHZKnSphehK7sHAv1WD2Jc2OeRGb+BWCB8Ktqf5YBxwbOwW7EQnyUeW1OyP9
 | 
				
			||||||
 | 
					SMs8uHj21P6oCNDLLr5LLUQHnPoyM1aBZLstICzziMR1JhY5bJjSpzBfEQmlKCSu
 | 
				
			||||||
 | 
					LkrN6QKBgQCRXrBJRUxeJj7wCnCSq0Clf9NhCpQnwo4bEx8sKlj8K8ku8MvwQwoM
 | 
				
			||||||
 | 
					3KfWc7bOl6A2/mM/k4yoHtBMM9X9xqYtsgeFhxuiWBcfTmTxWh73LQ48Kgbrgodt
 | 
				
			||||||
 | 
					6yTccnjr7OtBidD85c6lgjAUgcL43QY8mlw0OhzXAZ2R5HWFp4ht+w==
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIRAJ6IIisIZxL86oe3oeoAgWUwCwYJKoZIhvcNAQELMCYx
 | 
				
			||||||
 | 
					ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNjAxMjgw
 | 
				
			||||||
 | 
					MDQyMzNaFw0xOTAxMTIwMDQyMzNaMBMxETAPBgNVBAoTCFF1aWNrVExTMIIBIjAN
 | 
				
			||||||
 | 
					BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3IXUwqSdO2QTj2ET6fJPGe+KWVnt
 | 
				
			||||||
 | 
					QCQQWjkWVpOz8L2A29BRvv9z6lYNf9sOM0Xb5IUAgoZ/s3U6LNYT/RWYFBfeo40r
 | 
				
			||||||
 | 
					Xd/MNKAn0kFsSb6BIKmUwPqFeqc8wiPX6yY4SbF1sUTkCTkw3yFHg/AIlwmhpFH3
 | 
				
			||||||
 | 
					9mAmV+x0kTzFR/78ZDD5CUNS59bbu+7UqB06YrJuVEwPY98YixSPXTcaKimsUe+K
 | 
				
			||||||
 | 
					IY8FQ6yN6l27MK56wlj4hw2gYz+cyBUBCExCgYMQlOSg2ilH4qYyFvccSDUH7jTA
 | 
				
			||||||
 | 
					NwpsIBfdoUVbI+j2ivn+ZGD614LtIStGgUu0mDDVxVOWnRvq/z7LMaa2jwIDAQAB
 | 
				
			||||||
 | 
					ozUwMzAOBgNVHQ8BAf8EBAMCAKAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDAYDVR0T
 | 
				
			||||||
 | 
					AQH/BAIwADALBgkqhkiG9w0BAQsDggEBAJq3JzTLrIWCF8rHLTTm1icE9PjOO0sV
 | 
				
			||||||
 | 
					a1wrmdJ6NwRbJ66dLZ/4G/NZjVOnce9WFHYLFSEG+wx5YVUPuJXpJaSdy0h8F0Uw
 | 
				
			||||||
 | 
					hiJwgeVsGg7vcf4G6mWHrsauDOhylnD31UtYPX1Ao/jcntyyf+gCQpY1J/B8l1yU
 | 
				
			||||||
 | 
					LNOwvWLVLpZwZ4ehbKA/UnDXgA+3uHvpzl//cPe0cnt+Mhrgzk5mIMwVR6zCZw1G
 | 
				
			||||||
 | 
					oVutAHpv2PXxRwTMu51J+QtSL2b2w3mGHxDLpmz8UdXOtkxdpmDT8kIOtX0T5yGL
 | 
				
			||||||
 | 
					29F3fa81iZPs02GWjSGOfOzmCCvaA4C5KJvY/WulF7OOgwvrBpQwqTI=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIEowIBAAKCAQEA3IXUwqSdO2QTj2ET6fJPGe+KWVntQCQQWjkWVpOz8L2A29BR
 | 
				
			||||||
 | 
					vv9z6lYNf9sOM0Xb5IUAgoZ/s3U6LNYT/RWYFBfeo40rXd/MNKAn0kFsSb6BIKmU
 | 
				
			||||||
 | 
					wPqFeqc8wiPX6yY4SbF1sUTkCTkw3yFHg/AIlwmhpFH39mAmV+x0kTzFR/78ZDD5
 | 
				
			||||||
 | 
					CUNS59bbu+7UqB06YrJuVEwPY98YixSPXTcaKimsUe+KIY8FQ6yN6l27MK56wlj4
 | 
				
			||||||
 | 
					hw2gYz+cyBUBCExCgYMQlOSg2ilH4qYyFvccSDUH7jTANwpsIBfdoUVbI+j2ivn+
 | 
				
			||||||
 | 
					ZGD614LtIStGgUu0mDDVxVOWnRvq/z7LMaa2jwIDAQABAoIBAD2tiNZv6DImSXo+
 | 
				
			||||||
 | 
					sq0qQomEf/OBvWPFMnWppd/NK/TXa+UPHO4I0MjoDJqIEC6zCU+fC4d2St1MmlrT
 | 
				
			||||||
 | 
					/X85vPFRw8mGwGxfHeRSLxEVj04I5GDYTWy0JQUrJUk/cTKp2/Bwm/RaylTyFAM0
 | 
				
			||||||
 | 
					caYrSpvD69vjuTDFr7PDxM6iaqM53zK/vD8kCe81z+wN0UbAKsLlUOKztjH6SzL9
 | 
				
			||||||
 | 
					uVOkekIT/j3L2xxyQhjmhfA3TuCP4uNK/+6/4ovl9Nj4pQsFomsCk4phgqy9SOm1
 | 
				
			||||||
 | 
					4yufmVd8k7J3cppMlMPNc+7tqe2Xn593Y8QT95y3yhtkFECF70yBw64HMDDpA22p
 | 
				
			||||||
 | 
					5b/JV9ECgYEA9H4RBXOwbdjcpCa9H3mFjHqUQCqNme1vOSGiflZh9KBCDKgdqugm
 | 
				
			||||||
 | 
					KHpvAECADie0p6XRHpxRvufKnGFkJwedfeiKz51T+0dqgPxWncYT1TC+cAjOSzfM
 | 
				
			||||||
 | 
					wBpUOcAyvTTviwGbg4bLanHo4remzCbcnRvHQX4YfPFCjT9GhsU+XEUCgYEA5ubz
 | 
				
			||||||
 | 
					IlSu1wwFJpoO24ZykGUyqGUQXzR0NrXiLrpF0764qjmHyF8SPJPv1XegSxP/nUTz
 | 
				
			||||||
 | 
					SjVfJ7wye/X9qlOpBY8mzy9qQMMKc1cQBV1yVW8IRZ7pMYQZO7qmrZD/DWTa5qWt
 | 
				
			||||||
 | 
					pqSbIH2FKedELsKJA/SBtczKjspOdDKyh0UelsMCgYA7DyTfc0XAEy2hPXZb3wgC
 | 
				
			||||||
 | 
					mi2rnlvcPf2rCFPvPsCkzf2GfynDehaVmpWrsuj8Al1iTezI/yvD+Mv5oJEH2JAT
 | 
				
			||||||
 | 
					tROq+S8rOOIiTFJEBHAQBJlMCOSESPNdyD5mQOZAzEO9CWNejzYd/WwrL//Luut5
 | 
				
			||||||
 | 
					zBcC3AngTIsuAYXw0j6xHQKBgQDamkAJep7k3W5q82OplgoUhpqFLtlnKSP1QBFZ
 | 
				
			||||||
 | 
					J+U/6Mqv7jONEeUUEQL42H6bVd2kqUikMw9ZcSVikquLfBUDPFoDwOIZWg4k0IJM
 | 
				
			||||||
 | 
					cgHyvGHad+5SgLva/oUawbGWnqtXvfc/U4vCINPXrimxE1/grLW4xp/mu8W24OCA
 | 
				
			||||||
 | 
					jIG/PQKBgD/Apl+sfqiB/6ONBjjIswA4yFkEXHSZNpAgcPwhA+cO5D0afEWz2HIx
 | 
				
			||||||
 | 
					VeOh5NjN1EL0hX8clFW4bfkK1Vr0kjvbMUXnBWaibUgpiVQl9O9WjaKQLZrp4sRu
 | 
				
			||||||
 | 
					x2kJ07Qn6ri7f/lsqOELZwBy95iHWRdePptaAKkRGxJstHI7dgUt
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					version: 0.1
 | 
				
			||||||
 | 
					loglevel: debug
 | 
				
			||||||
 | 
					storage:
 | 
				
			||||||
 | 
					    cache:
 | 
				
			||||||
 | 
					        blobdescriptor: inmemory
 | 
				
			||||||
 | 
					    filesystem:
 | 
				
			||||||
 | 
					        rootdirectory: /tmp/registry-dev
 | 
				
			||||||
 | 
					http:
 | 
				
			||||||
 | 
					    addr: 0.0.0.0:5000
 | 
				
			||||||
 | 
					    tls:
 | 
				
			||||||
 | 
					        certificate: "/etc/docker/registry/localregistry.cert"
 | 
				
			||||||
 | 
					        key: "/etc/docker/registry/localregistry.key"
 | 
				
			||||||
 | 
					auth:
 | 
				
			||||||
 | 
					    token:
 | 
				
			||||||
 | 
					        realm: "https://auth.localregistry:5559/token/"
 | 
				
			||||||
 | 
					        issuer: "registry-test"
 | 
				
			||||||
 | 
					        service: "registry-test"
 | 
				
			||||||
 | 
					        rootcertbundle: "/etc/docker/registry/tokenbundle.pem"
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					testuser:$2y$05$T2MlBvkN1R/yICNnLuf1leOlOfAY0DvybctbbWUFKlojfkShVgn4m
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					FROM dmcgowan/token-server:simple
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WORKDIR /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY ./.htpasswd /.htpasswd
 | 
				
			||||||
 | 
					COPY ./certs/auth.localregistry.cert /tls.cert
 | 
				
			||||||
 | 
					COPY ./certs/auth.localregistry.key /tls.key
 | 
				
			||||||
 | 
					COPY ./certs/signing.key /sign.key
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIDHDCCAgagAwIBAgIRAKhhQMnqZx+hkOmoUYgPb+kwCwYJKoZIhvcNAQELMCYx
 | 
				
			||||||
 | 
					ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNjAxMjgw
 | 
				
			||||||
 | 
					MDQyMzFaFw0xOTAxMTIwMDQyMzFaMDAxETAPBgNVBAoTCFF1aWNrVExTMRswGQYD
 | 
				
			||||||
 | 
					VQQDExJhdXRoLmxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
 | 
				
			||||||
 | 
					ggEKAoIBAQD1tUf1EghBlIRrE83yF4zDgRu7vH2Jo0kygKJUWtQQe+DfXyjjE/fg
 | 
				
			||||||
 | 
					FdKnnoEjsIeF9hxNbTt0ldDz7/n97pbMhoiXULi9iq4jlgSzVL2XEAgrON0YSY/c
 | 
				
			||||||
 | 
					Lmmd1KSa/pOUZr2WMAYPZ+FdQfE1W7SMNbErPefBqYdFzpZ+esAtvbajYwIjl8Vy
 | 
				
			||||||
 | 
					9c4bidx4vgnNrR9GcFYibjC5sj8syh/OtbzzqiVGT8YcPpmMG6KNRkausa4gqpon
 | 
				
			||||||
 | 
					NKYG8C3WDaiPCLYKcvFrFfdEWF/m2oj14eXACXT9iwp8r4bsLgXrZwqcpKOWfVRu
 | 
				
			||||||
 | 
					qHC8aV476EYgxWCAOANExUdUaRt5wL/jAgMBAAGjPzA9MA4GA1UdDwEB/wQEAwIA
 | 
				
			||||||
 | 
					oDAMBgNVHRMBAf8EAjAAMB0GA1UdEQQWMBSCEmF1dGgubG9jYWxyZWdpc3RyeTAL
 | 
				
			||||||
 | 
					BgkqhkiG9w0BAQsDggEBABxPGK9FdGDxcLowNsExKnnZvmQT3H0u+Dux1gkp0AhH
 | 
				
			||||||
 | 
					KOrmx3LUENUKLSgotzx133tgOgR5lzAWVFy7bhLwlPhOslxf2oEfztsAMd/tY8rW
 | 
				
			||||||
 | 
					PrG2ZqYqlzEQQ9INbAc3woo5A3slN07uhP3F16jNqoMM4zRmw6Ba70CluGKT7x5+
 | 
				
			||||||
 | 
					xVjKoWITLjWDXT5m35PnsN8CpBaFzXYcod/5p9XwCFp0s+aNxfpZECCV/3yqIr+J
 | 
				
			||||||
 | 
					ALzroPh43FAlG96o4NyYZ2Msp63newN19R2+TgpV4nXuw2mLVDpvetP7RRqnpvj/
 | 
				
			||||||
 | 
					qwRgt5j4hFjJWb61M0ELL7A9fA71h1ImdGCvnArdBQs=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIEpAIBAAKCAQEA9bVH9RIIQZSEaxPN8heMw4Ebu7x9iaNJMoCiVFrUEHvg318o
 | 
				
			||||||
 | 
					4xP34BXSp56BI7CHhfYcTW07dJXQ8+/5/e6WzIaIl1C4vYquI5YEs1S9lxAIKzjd
 | 
				
			||||||
 | 
					GEmP3C5pndSkmv6TlGa9ljAGD2fhXUHxNVu0jDWxKz3nwamHRc6WfnrALb22o2MC
 | 
				
			||||||
 | 
					I5fFcvXOG4nceL4Jza0fRnBWIm4wubI/LMofzrW886olRk/GHD6ZjBuijUZGrrGu
 | 
				
			||||||
 | 
					IKqaJzSmBvAt1g2ojwi2CnLxaxX3RFhf5tqI9eHlwAl0/YsKfK+G7C4F62cKnKSj
 | 
				
			||||||
 | 
					ln1UbqhwvGleO+hGIMVggDgDRMVHVGkbecC/4wIDAQABAoIBAQCrsjXKRwOF8CZo
 | 
				
			||||||
 | 
					PLqZBWPT6hBbK+f9miC4LbNBhwbRTf9hl7mWlImOCTHe95/+NIk/Ty+P21jEqzwM
 | 
				
			||||||
 | 
					ehETJPoziX9BXaL6sEHnlBlMx1aEjStoKKA3LJBeqAAdzk4IEQVHmlO4824IreqJ
 | 
				
			||||||
 | 
					pF7Njnunzo0zTlr4tWJVoXsAfv5z9tNtdkxYBbIa0fjfGtlqXU3gLq58FCON3mB/
 | 
				
			||||||
 | 
					NGc0AyA1UFGp0FzpdEcwTGD4InsXbcmsl2l/VPBJuZbryITRqWs6BbK++80DRhNt
 | 
				
			||||||
 | 
					afMhP+IzKrWSCp0rBYrqqz6AevtlKdEfQK1yXPEjN/63QLMevt8mF/1JCp//TQnf
 | 
				
			||||||
 | 
					Z6bIQbAhAoGBAP7vFA0PcvoXt9MXvvAwrKY1s6pNw4nWPG27qY1/m+DkBwP8IQms
 | 
				
			||||||
 | 
					4AWGv1wscZzXJYTvaLO5/qjmGUj50ohcVEvyZJioh1pKXA8Chxvd6rBA/O/Lj5E0
 | 
				
			||||||
 | 
					3MOSA5Q0gxJ0Mhv0zGbbyN5fY8D8zhxoqQP4LoW+UdZG2Oi6JxsQ9c9dAoGBAPa8
 | 
				
			||||||
 | 
					U3bGuM5OGA9EWP7mkB/VnjDTL1aEIN3cOHbHIKwH/loxdYcNMBE7vwxV1CzgIzXT
 | 
				
			||||||
 | 
					wsL0iE15fQdK938u0+um8aH5QtbWNI8tdk1XVjEC/i3C7N6WVUutneCKUDb4QxiB
 | 
				
			||||||
 | 
					9OvWCbNNiN+xTKBBM93YlwO3GYfrW9Pmm9q1+hg/AoGBALJlUS22gun50PxaIJZq
 | 
				
			||||||
 | 
					KVcCO2DQnCYHki/j48mN4+HjD/m85M2lePrFCYIR48syTyIQer9SR5+frVAA6k/b
 | 
				
			||||||
 | 
					9G1VCQo+3MDVSkiCp1Nb3tBKGfYgB65ARMBinDiI6rPuNeaUTrkn0g+yxtaU0hLV
 | 
				
			||||||
 | 
					Nnj9omia/x+oYj+xjI4HN0xNAoGARy92dSJIV104m88ATip/EnAzP6ruUWu1f8z1
 | 
				
			||||||
 | 
					jW9OAdQckjEK03f+kjpGmGx61qekAPejjVO3r4KJi/0ZAtyjz61OsYiUvB748wYO
 | 
				
			||||||
 | 
					x6mW+HUAmHtQk7eTzE2+6vV8xx9BXGTCIPiTu+N2xfMFRIcLS8odZ7j/6LMCv1Qd
 | 
				
			||||||
 | 
					SzCNg0kCgYBaNlEs4pK1VxZZpEWwVmFpgIxfEfxLIaGrek6wBTcCn/VA2M0oHuez
 | 
				
			||||||
 | 
					mlMio8VY0yWPBJz30JflDiTmYIvteLPMHT0N0J6isiXLhzJSFI4+cAMLE2Q5v8rz
 | 
				
			||||||
 | 
					W+W5/L8YZeierW0qJat1BrgStaf5ZLpiOc9pKBSwycydPH5BfVdK/A==
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw
 | 
				
			||||||
 | 
					NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV
 | 
				
			||||||
 | 
					BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf
 | 
				
			||||||
 | 
					fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3
 | 
				
			||||||
 | 
					lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl
 | 
				
			||||||
 | 
					d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD
 | 
				
			||||||
 | 
					L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp
 | 
				
			||||||
 | 
					GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2
 | 
				
			||||||
 | 
					ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/
 | 
				
			||||||
 | 
					BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH
 | 
				
			||||||
 | 
					Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/
 | 
				
			||||||
 | 
					w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2
 | 
				
			||||||
 | 
					x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh
 | 
				
			||||||
 | 
					XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne
 | 
				
			||||||
 | 
					SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIDETCCAfugAwIBAgIQN7rT95eAy75c4n6/AsDJODALBgkqhkiG9w0BAQswJjER
 | 
				
			||||||
 | 
					MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw
 | 
				
			||||||
 | 
					NDIzMloXDTE5MDExMjAwNDIzMlowKzERMA8GA1UEChMIUXVpY2tUTFMxFjAUBgNV
 | 
				
			||||||
 | 
					BAMTDWxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
 | 
				
			||||||
 | 
					AQDLi75QEkl/qekcoOJlNv9y1IXvrbU2ssl4ViJiZRjWx+/CkyCCOyf9YUpAgRLr
 | 
				
			||||||
 | 
					Pskqde2mwhuNP8yBlOBb17Sapz7N3+hJi5j9vLBAFcamPeF3PqxjFv7j5TKkRmSI
 | 
				
			||||||
 | 
					dFYQclREwMUd3qEH322KkqOnsEEfdmCgFqWORe+QR5AxzxQP3Pnd4OYH1yZCh0MQ
 | 
				
			||||||
 | 
					P2pJgrxxf2I5I/m1AUgoHV1cdBbCv9LGohJPpMtwPC0dJpgMFcnf6hT37At236AY
 | 
				
			||||||
 | 
					V437HiRruY7iPWkYFrSPWpwdslJ32MZvRN5RS163jZXjiZ7qWnQOiiDJfXe4evB/
 | 
				
			||||||
 | 
					yQLN4m0qVQxsMz7rkY7OsqaXAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIAoDAMBgNV
 | 
				
			||||||
 | 
					HRMBAf8EAjAAMBgGA1UdEQQRMA+CDWxvY2FscmVnaXN0cnkwCwYJKoZIhvcNAQEL
 | 
				
			||||||
 | 
					A4IBAQAyUb3EuMaOylBeV8+4KeBiE4lxykDOwLLSk3jXRsVVtfJpX3v8l5vwo/Jf
 | 
				
			||||||
 | 
					iG8tzzz+7uiskI96u3TsekUtVkUxujfKevMP+369K/59s7NRmwwlFMyB2fvL14B2
 | 
				
			||||||
 | 
					oweVjWvM/8fZl6irtFdbJFXXRm7paKso5cmfImxhojAwohgcd4XTVLE/7juYa582
 | 
				
			||||||
 | 
					AaBdRuIiyL71MU9qa1mC5+57AaSLPYaPKpahemgYYkV1Z403Kd6rXchxdQ8JIAL8
 | 
				
			||||||
 | 
					+0oYTSC+svnz1tUU/V5E5id9LQaTmDN5iIVFhNpqAaZmR45UI86woWvnkMb8Ants
 | 
				
			||||||
 | 
					4aknwTwY3300PuTqBdQufvOFDRN5
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIEpAIBAAKCAQEAy4u+UBJJf6npHKDiZTb/ctSF7621NrLJeFYiYmUY1sfvwpMg
 | 
				
			||||||
 | 
					gjsn/WFKQIES6z7JKnXtpsIbjT/MgZTgW9e0mqc+zd/oSYuY/bywQBXGpj3hdz6s
 | 
				
			||||||
 | 
					Yxb+4+UypEZkiHRWEHJURMDFHd6hB99tipKjp7BBH3ZgoBaljkXvkEeQMc8UD9z5
 | 
				
			||||||
 | 
					3eDmB9cmQodDED9qSYK8cX9iOSP5tQFIKB1dXHQWwr/SxqIST6TLcDwtHSaYDBXJ
 | 
				
			||||||
 | 
					3+oU9+wLdt+gGFeN+x4ka7mO4j1pGBa0j1qcHbJSd9jGb0TeUUtet42V44me6lp0
 | 
				
			||||||
 | 
					DoogyX13uHrwf8kCzeJtKlUMbDM+65GOzrKmlwIDAQABAoIBAF6vFMp+lz4RteSh
 | 
				
			||||||
 | 
					Wm8m1FGAVwWVUpStOlcGClynFpTi0L88XYT3K7UMStQSttBDlqRv0ysdZF+ia+lj
 | 
				
			||||||
 | 
					bbKLdvHyFp8CJzX/AB4YZgyJlKzEYFtuBhbaHZu5hIMyU5W+OELSTCznV0p7w4C8
 | 
				
			||||||
 | 
					CGLLr+FTdhfCo1QU9NJn6fa9s2/XRdSClBBalAHYs0ZS7ZckaF/sPiC/VapfBMet
 | 
				
			||||||
 | 
					qjJXNYiO6pXYriGWKF9zdAMfk2CM0BVWbnwQZkMSEQirrTcJwm3ezyloXCv2nywK
 | 
				
			||||||
 | 
					/VzbUT1HJVyzo5oAwTd0MwDc2oEMiFzlfO028zY4LDltpia+SyWvFi5NaIqzFESc
 | 
				
			||||||
 | 
					yLgJacECgYEA3jvH+ZQHQf42Md8TCciokaYvwWIKJdk4WRjbvE5cBZekyXAm7/3b
 | 
				
			||||||
 | 
					/1VFDKsy2RPlfmfHP3wy9rlnjzsRveB5qaclgS8aI67AYsWd/yRgfRatl7Ve9bHl
 | 
				
			||||||
 | 
					LY6VM5L/DZTxykcqivwjc77XoDuBfUKs6tyuSLQku+FOTbLtNYlUCHECgYEA6nkR
 | 
				
			||||||
 | 
					lkXufyLmDhNb3093RsYvPcs1kGaIIGTnz3cxWNh485DgsyLBuYQ5ugupQkzM8YSt
 | 
				
			||||||
 | 
					ohDTmVpggqjlXQxCg0Zw8gkEV0v8KsLGjn1CuTJg/mBArXlelq1FEeRAYC9/YfOz
 | 
				
			||||||
 | 
					ocXegHV7wDKKtcraNZFsEc7Z0LwbC9wtzSFG44cCgYASkMX1CLPOhJE8e1lY0OWc
 | 
				
			||||||
 | 
					PVjx++HDJbF6aAQ7aARyBygiF/d4xylw3EvHcinuTqY2eC8CE7siN3z6T0H9Ldqc
 | 
				
			||||||
 | 
					HLWaZDf30SqLVd0MKprQ+GsKKIHFXtY5hxbZ1ybtmIrWjjl0oPnJOqFC5pW7xC0z
 | 
				
			||||||
 | 
					9bmtozcKZxkmjpMYjN9zUQKBgQCqV6KLRerqunPgLfhE1/qTlE+l2QflDFhBEI3I
 | 
				
			||||||
 | 
					j5NuNHZKnSphehK7sHAv1WD2Jc2OeRGb+BWCB8Ktqf5YBxwbOwW7EQnyUeW1OyP9
 | 
				
			||||||
 | 
					SMs8uHj21P6oCNDLLr5LLUQHnPoyM1aBZLstICzziMR1JhY5bJjSpzBfEQmlKCSu
 | 
				
			||||||
 | 
					LkrN6QKBgQCRXrBJRUxeJj7wCnCSq0Clf9NhCpQnwo4bEx8sKlj8K8ku8MvwQwoM
 | 
				
			||||||
 | 
					3KfWc7bOl6A2/mM/k4yoHtBMM9X9xqYtsgeFhxuiWBcfTmTxWh73LQ48Kgbrgodt
 | 
				
			||||||
 | 
					6yTccnjr7OtBidD85c6lgjAUgcL43QY8mlw0OhzXAZ2R5HWFp4ht+w==
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
 | 
					MIIC9TCCAd+gAwIBAgIRAJ6IIisIZxL86oe3oeoAgWUwCwYJKoZIhvcNAQELMCYx
 | 
				
			||||||
 | 
					ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNjAxMjgw
 | 
				
			||||||
 | 
					MDQyMzNaFw0xOTAxMTIwMDQyMzNaMBMxETAPBgNVBAoTCFF1aWNrVExTMIIBIjAN
 | 
				
			||||||
 | 
					BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3IXUwqSdO2QTj2ET6fJPGe+KWVnt
 | 
				
			||||||
 | 
					QCQQWjkWVpOz8L2A29BRvv9z6lYNf9sOM0Xb5IUAgoZ/s3U6LNYT/RWYFBfeo40r
 | 
				
			||||||
 | 
					Xd/MNKAn0kFsSb6BIKmUwPqFeqc8wiPX6yY4SbF1sUTkCTkw3yFHg/AIlwmhpFH3
 | 
				
			||||||
 | 
					9mAmV+x0kTzFR/78ZDD5CUNS59bbu+7UqB06YrJuVEwPY98YixSPXTcaKimsUe+K
 | 
				
			||||||
 | 
					IY8FQ6yN6l27MK56wlj4hw2gYz+cyBUBCExCgYMQlOSg2ilH4qYyFvccSDUH7jTA
 | 
				
			||||||
 | 
					NwpsIBfdoUVbI+j2ivn+ZGD614LtIStGgUu0mDDVxVOWnRvq/z7LMaa2jwIDAQAB
 | 
				
			||||||
 | 
					ozUwMzAOBgNVHQ8BAf8EBAMCAKAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDAYDVR0T
 | 
				
			||||||
 | 
					AQH/BAIwADALBgkqhkiG9w0BAQsDggEBAJq3JzTLrIWCF8rHLTTm1icE9PjOO0sV
 | 
				
			||||||
 | 
					a1wrmdJ6NwRbJ66dLZ/4G/NZjVOnce9WFHYLFSEG+wx5YVUPuJXpJaSdy0h8F0Uw
 | 
				
			||||||
 | 
					hiJwgeVsGg7vcf4G6mWHrsauDOhylnD31UtYPX1Ao/jcntyyf+gCQpY1J/B8l1yU
 | 
				
			||||||
 | 
					LNOwvWLVLpZwZ4ehbKA/UnDXgA+3uHvpzl//cPe0cnt+Mhrgzk5mIMwVR6zCZw1G
 | 
				
			||||||
 | 
					oVutAHpv2PXxRwTMu51J+QtSL2b2w3mGHxDLpmz8UdXOtkxdpmDT8kIOtX0T5yGL
 | 
				
			||||||
 | 
					29F3fa81iZPs02GWjSGOfOzmCCvaA4C5KJvY/WulF7OOgwvrBpQwqTI=
 | 
				
			||||||
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					-----BEGIN RSA PRIVATE KEY-----
 | 
				
			||||||
 | 
					MIIEowIBAAKCAQEA3IXUwqSdO2QTj2ET6fJPGe+KWVntQCQQWjkWVpOz8L2A29BR
 | 
				
			||||||
 | 
					vv9z6lYNf9sOM0Xb5IUAgoZ/s3U6LNYT/RWYFBfeo40rXd/MNKAn0kFsSb6BIKmU
 | 
				
			||||||
 | 
					wPqFeqc8wiPX6yY4SbF1sUTkCTkw3yFHg/AIlwmhpFH39mAmV+x0kTzFR/78ZDD5
 | 
				
			||||||
 | 
					CUNS59bbu+7UqB06YrJuVEwPY98YixSPXTcaKimsUe+KIY8FQ6yN6l27MK56wlj4
 | 
				
			||||||
 | 
					hw2gYz+cyBUBCExCgYMQlOSg2ilH4qYyFvccSDUH7jTANwpsIBfdoUVbI+j2ivn+
 | 
				
			||||||
 | 
					ZGD614LtIStGgUu0mDDVxVOWnRvq/z7LMaa2jwIDAQABAoIBAD2tiNZv6DImSXo+
 | 
				
			||||||
 | 
					sq0qQomEf/OBvWPFMnWppd/NK/TXa+UPHO4I0MjoDJqIEC6zCU+fC4d2St1MmlrT
 | 
				
			||||||
 | 
					/X85vPFRw8mGwGxfHeRSLxEVj04I5GDYTWy0JQUrJUk/cTKp2/Bwm/RaylTyFAM0
 | 
				
			||||||
 | 
					caYrSpvD69vjuTDFr7PDxM6iaqM53zK/vD8kCe81z+wN0UbAKsLlUOKztjH6SzL9
 | 
				
			||||||
 | 
					uVOkekIT/j3L2xxyQhjmhfA3TuCP4uNK/+6/4ovl9Nj4pQsFomsCk4phgqy9SOm1
 | 
				
			||||||
 | 
					4yufmVd8k7J3cppMlMPNc+7tqe2Xn593Y8QT95y3yhtkFECF70yBw64HMDDpA22p
 | 
				
			||||||
 | 
					5b/JV9ECgYEA9H4RBXOwbdjcpCa9H3mFjHqUQCqNme1vOSGiflZh9KBCDKgdqugm
 | 
				
			||||||
 | 
					KHpvAECADie0p6XRHpxRvufKnGFkJwedfeiKz51T+0dqgPxWncYT1TC+cAjOSzfM
 | 
				
			||||||
 | 
					wBpUOcAyvTTviwGbg4bLanHo4remzCbcnRvHQX4YfPFCjT9GhsU+XEUCgYEA5ubz
 | 
				
			||||||
 | 
					IlSu1wwFJpoO24ZykGUyqGUQXzR0NrXiLrpF0764qjmHyF8SPJPv1XegSxP/nUTz
 | 
				
			||||||
 | 
					SjVfJ7wye/X9qlOpBY8mzy9qQMMKc1cQBV1yVW8IRZ7pMYQZO7qmrZD/DWTa5qWt
 | 
				
			||||||
 | 
					pqSbIH2FKedELsKJA/SBtczKjspOdDKyh0UelsMCgYA7DyTfc0XAEy2hPXZb3wgC
 | 
				
			||||||
 | 
					mi2rnlvcPf2rCFPvPsCkzf2GfynDehaVmpWrsuj8Al1iTezI/yvD+Mv5oJEH2JAT
 | 
				
			||||||
 | 
					tROq+S8rOOIiTFJEBHAQBJlMCOSESPNdyD5mQOZAzEO9CWNejzYd/WwrL//Luut5
 | 
				
			||||||
 | 
					zBcC3AngTIsuAYXw0j6xHQKBgQDamkAJep7k3W5q82OplgoUhpqFLtlnKSP1QBFZ
 | 
				
			||||||
 | 
					J+U/6Mqv7jONEeUUEQL42H6bVd2kqUikMw9ZcSVikquLfBUDPFoDwOIZWg4k0IJM
 | 
				
			||||||
 | 
					cgHyvGHad+5SgLva/oUawbGWnqtXvfc/U4vCINPXrimxE1/grLW4xp/mu8W24OCA
 | 
				
			||||||
 | 
					jIG/PQKBgD/Apl+sfqiB/6ONBjjIswA4yFkEXHSZNpAgcPwhA+cO5D0afEWz2HIx
 | 
				
			||||||
 | 
					VeOh5NjN1EL0hX8clFW4bfkK1Vr0kjvbMUXnBWaibUgpiVQl9O9WjaKQLZrp4sRu
 | 
				
			||||||
 | 
					x2kJ07Qn6ri7f/lsqOELZwBy95iHWRdePptaAKkRGxJstHI7dgUt
 | 
				
			||||||
 | 
					-----END RSA PRIVATE KEY-----
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					version: 0.1
 | 
				
			||||||
 | 
					loglevel: debug
 | 
				
			||||||
 | 
					storage:
 | 
				
			||||||
 | 
					    cache:
 | 
				
			||||||
 | 
					        blobdescriptor: inmemory
 | 
				
			||||||
 | 
					    filesystem:
 | 
				
			||||||
 | 
					        rootdirectory: /tmp/registry-dev
 | 
				
			||||||
 | 
					http:
 | 
				
			||||||
 | 
					    addr: 0.0.0.0:5000
 | 
				
			||||||
 | 
					    tls:
 | 
				
			||||||
 | 
					        certificate: "/etc/docker/registry/localregistry.cert"
 | 
				
			||||||
 | 
					        key: "/etc/docker/registry/localregistry.key"
 | 
				
			||||||
 | 
					auth:
 | 
				
			||||||
 | 
					    token:
 | 
				
			||||||
 | 
					        realm: "https://auth.localregistry:5556/token/"
 | 
				
			||||||
 | 
					        issuer: "registry-test"
 | 
				
			||||||
 | 
					        service: "registry-test"
 | 
				
			||||||
 | 
					        rootcertbundle: "/etc/docker/registry/tokenbundle.pem"
 | 
				
			||||||
		Loading…
	
		Reference in New Issue